Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Shared / MS / Internal / HashHelper.cs / 1 / HashHelper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: Static class to help work around hashing-related bugs. // //--------------------------------------------------------------------------- using System; using MS.Internal; // BaseHashHelper #if WINDOWS_BASE namespace MS.Internal.Hashing.WindowsBase #elif PRESENTATION_CORE namespace MS.Internal.Hashing.PresentationCore #elif PRESENTATIONFRAMEWORK using System.ComponentModel; // ICustomTypeDescriptor namespace MS.Internal.Hashing.PresentationFramework #else #error Attempt to define HashHelper in an unknown assembly. namespace MS.Internal.YourAssemblyName #endif { internal static class HashHelper { // The class cctor registers this assembly's exceptional types with // the base helper. static HashHelper() { Initialize(); // this makes FxCop happy - otherwise Initialize is "unused code" Type[] types = new Type[] { #if WINDOWS_BASE #elif PRESENTATION_CORE typeof(System.Windows.Media.CharacterMetrics), // bug 1612093 typeof(System.Windows.Ink.ExtendedProperty), // bug 1612101 typeof(System.Windows.Media.FamilyTypeface), // bug 1612103 typeof(System.Windows.Media.NumberSubstitution), // bug 1612105 #elif PRESENTATIONFRAMEWORK typeof(System.Windows.Markup.Localizer.BamlLocalizableResource), // bug 1612118 typeof(System.Windows.ComponentResourceKey), // bug 1612119 #endif }; BaseHashHelper.RegisterTypes(typeof(HashHelper).Assembly, types); // initialize lower-level assemblies #if PRESENTATIONFRAMEWORK MS.Internal.Hashing.PresentationCore.HashHelper.Initialize(); #endif } // certain objects don't have reliable hashcodes, and cannot be used // within a Hashtable, Dictionary, etc. internal static bool HasReliableHashCode(object item) { return BaseHashHelper.HasReliableHashCode(item); } // this method doesn't do anything, but calling it makes sure the static // cctor gets called internal static void Initialize() { } #if PRESENTATIONFRAMEWORK // Helper to identify DataRowView internal static bool IsDataRowView(object item, Type type) { // the earlier tests filter out most false results before doing // the final test. If we did the final test first, it would load // System.Data unnecessarily. return (item is ICustomTypeDescriptor && item is IDataErrorInfo && type.Namespace == "System.Data" && IsDataRowViewType(type)); } // separate method to avoid loading System.Data until needed [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] private static bool IsDataRowViewType(Type type) { return (type == typeof(System.Data.DataRowView)); } #endif } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: Static class to help work around hashing-related bugs. // //--------------------------------------------------------------------------- using System; using MS.Internal; // BaseHashHelper #if WINDOWS_BASE namespace MS.Internal.Hashing.WindowsBase #elif PRESENTATION_CORE namespace MS.Internal.Hashing.PresentationCore #elif PRESENTATIONFRAMEWORK using System.ComponentModel; // ICustomTypeDescriptor namespace MS.Internal.Hashing.PresentationFramework #else #error Attempt to define HashHelper in an unknown assembly. namespace MS.Internal.YourAssemblyName #endif { internal static class HashHelper { // The class cctor registers this assembly's exceptional types with // the base helper. static HashHelper() { Initialize(); // this makes FxCop happy - otherwise Initialize is "unused code" Type[] types = new Type[] { #if WINDOWS_BASE #elif PRESENTATION_CORE typeof(System.Windows.Media.CharacterMetrics), // bug 1612093 typeof(System.Windows.Ink.ExtendedProperty), // bug 1612101 typeof(System.Windows.Media.FamilyTypeface), // bug 1612103 typeof(System.Windows.Media.NumberSubstitution), // bug 1612105 #elif PRESENTATIONFRAMEWORK typeof(System.Windows.Markup.Localizer.BamlLocalizableResource), // bug 1612118 typeof(System.Windows.ComponentResourceKey), // bug 1612119 #endif }; BaseHashHelper.RegisterTypes(typeof(HashHelper).Assembly, types); // initialize lower-level assemblies #if PRESENTATIONFRAMEWORK MS.Internal.Hashing.PresentationCore.HashHelper.Initialize(); #endif } // certain objects don't have reliable hashcodes, and cannot be used // within a Hashtable, Dictionary, etc. internal static bool HasReliableHashCode(object item) { return BaseHashHelper.HasReliableHashCode(item); } // this method doesn't do anything, but calling it makes sure the static // cctor gets called internal static void Initialize() { } #if PRESENTATIONFRAMEWORK // Helper to identify DataRowView internal static bool IsDataRowView(object item, Type type) { // the earlier tests filter out most false results before doing // the final test. If we did the final test first, it would load // System.Data unnecessarily. return (item is ICustomTypeDescriptor && item is IDataErrorInfo && type.Namespace == "System.Data" && IsDataRowViewType(type)); } // separate method to avoid loading System.Data until needed [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] private static bool IsDataRowViewType(Type type) { return (type == typeof(System.Data.DataRowView)); } #endif } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileUtil.cs
- DataGridViewSelectedColumnCollection.cs
- Statements.cs
- SamlAuthenticationClaimResource.cs
- InplaceBitmapMetadataWriter.cs
- GetChildSubtree.cs
- PropertyDescriptor.cs
- CommunicationObjectFaultedException.cs
- TrustLevel.cs
- Operators.cs
- ServiceModelSecurityTokenRequirement.cs
- CompositionAdorner.cs
- DrawListViewSubItemEventArgs.cs
- LinkTarget.cs
- XsltOutput.cs
- HttpCachePolicy.cs
- XmlDataSourceNodeDescriptor.cs
- PersonalizationProvider.cs
- SchemaTableOptionalColumn.cs
- ResourceSet.cs
- ITreeGenerator.cs
- SqlBuilder.cs
- InternalRelationshipCollection.cs
- Quad.cs
- CreateUserWizardDesigner.cs
- MsdtcClusterUtils.cs
- RefreshPropertiesAttribute.cs
- Simplifier.cs
- SqlNodeAnnotations.cs
- OleDbCommandBuilder.cs
- ZipIOCentralDirectoryFileHeader.cs
- QueryAccessibilityHelpEvent.cs
- TransformDescriptor.cs
- UrlUtility.cs
- BlurBitmapEffect.cs
- TextDecorationLocationValidation.cs
- InvalidOleVariantTypeException.cs
- ImageIndexEditor.cs
- CursorEditor.cs
- StateInitializationDesigner.cs
- XamlTemplateSerializer.cs
- DiscoveryDocument.cs
- Reference.cs
- InputReport.cs
- Int32Converter.cs
- OdbcReferenceCollection.cs
- LazyInitializer.cs
- TypographyProperties.cs
- DataObjectEventArgs.cs
- ErrorWrapper.cs
- HttpCapabilitiesBase.cs
- TypeSystem.cs
- TransformerConfigurationWizardBase.cs
- CmsInterop.cs
- ToggleButton.cs
- DummyDataSource.cs
- ListViewSelectEventArgs.cs
- UInt64Converter.cs
- InstanceNotReadyException.cs
- Literal.cs
- SchemaEntity.cs
- DateTimePicker.cs
- WebBrowserDocumentCompletedEventHandler.cs
- HashAlgorithm.cs
- SqlTopReducer.cs
- BindingsCollection.cs
- SearchExpression.cs
- ExpressionBindings.cs
- ResetableIterator.cs
- BindingsCollection.cs
- XmlDeclaration.cs
- NestedContainer.cs
- FunctionUpdateCommand.cs
- ClassImporter.cs
- PolicyException.cs
- OdbcReferenceCollection.cs
- MessageSmuggler.cs
- LineGeometry.cs
- GrammarBuilder.cs
- ResourceProviderFactory.cs
- WizardDesigner.cs
- FixedPageAutomationPeer.cs
- BindingGroup.cs
- HandlerWithFactory.cs
- LinqDataView.cs
- Visitor.cs
- XmlSchemaFacet.cs
- Renderer.cs
- CustomPopupPlacement.cs
- BroadcastEventHelper.cs
- ShadowGlyph.cs
- MemoryStream.cs
- EventListenerClientSide.cs
- Membership.cs
- ResourceSet.cs
- FragmentNavigationEventArgs.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- PlanCompilerUtil.cs
- DecoderExceptionFallback.cs
- UnmanagedBitmapWrapper.cs