Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- EventRecord.cs
- SerializationSectionGroup.cs
- DataRelationPropertyDescriptor.cs
- XPathPatternBuilder.cs
- StylusShape.cs
- Border.cs
- XmlUrlResolver.cs
- LinqDataSourceContextEventArgs.cs
- QuaternionAnimation.cs
- SchemaCollectionCompiler.cs
- DesignerExtenders.cs
- CommandPlan.cs
- DocumentViewer.cs
- SecurityException.cs
- TextTreeRootNode.cs
- DesignerForm.cs
- MessageSecurityTokenVersion.cs
- ClientRuntimeConfig.cs
- PositiveTimeSpanValidator.cs
- TextRangeProviderWrapper.cs
- securitymgrsite.cs
- SupportingTokenSpecification.cs
- DefaultObjectMappingItemCollection.cs
- IDispatchConstantAttribute.cs
- PasswordBoxAutomationPeer.cs
- recordstatefactory.cs
- CommandEventArgs.cs
- HTTPAPI_VERSION.cs
- PackageRelationshipCollection.cs
- TextRunCacheImp.cs
- DoubleCollection.cs
- PbrsForward.cs
- XmlSchemaFacet.cs
- PlatformNotSupportedException.cs
- RoleGroupCollection.cs
- TextRenderer.cs
- ReflectTypeDescriptionProvider.cs
- FilterableAttribute.cs
- ConfigurationProperty.cs
- AssemblyNameProxy.cs
- WorkItem.cs
- InputDevice.cs
- Rect3DConverter.cs
- RawStylusInput.cs
- IconConverter.cs
- pingexception.cs
- FunctionMappingTranslator.cs
- EntityTypeEmitter.cs
- EmbeddedMailObject.cs
- ResourcesChangeInfo.cs
- MenuBindingsEditorForm.cs
- AnnotationService.cs
- XmlLinkedNode.cs
- Viewport3DAutomationPeer.cs
- ListSortDescriptionCollection.cs
- DelegateTypeInfo.cs
- TopClause.cs
- UshortList2.cs
- ReadContentAsBinaryHelper.cs
- DPAPIProtectedConfigurationProvider.cs
- CanonicalizationDriver.cs
- DbConnectionHelper.cs
- FormViewUpdatedEventArgs.cs
- PrintDialogException.cs
- ReflectTypeDescriptionProvider.cs
- UnsafeNativeMethods.cs
- CapacityStreamGeometryContext.cs
- WithParamAction.cs
- Event.cs
- ConfigsHelper.cs
- ElementInit.cs
- AssertSection.cs
- ProgramPublisher.cs
- MSG.cs
- DeferredElementTreeState.cs
- SmiEventSink_Default.cs
- XmlFormatExtensionPointAttribute.cs
- SiteMapNodeCollection.cs
- UnsafeNativeMethods.cs
- SQLByteStorage.cs
- UInt32.cs
- WebPartsPersonalizationAuthorization.cs
- ProviderBase.cs
- ColumnHeaderConverter.cs
- SynchronizationHandlesCodeDomSerializer.cs
- ToolStripTextBox.cs
- Exception.cs
- MessageAction.cs
- ClientRuntimeConfig.cs
- SspiSafeHandles.cs
- OleDbMetaDataFactory.cs
- AbstractExpressions.cs
- XslNumber.cs
- BasicExpressionVisitor.cs
- HorizontalAlignConverter.cs
- ProviderIncompatibleException.cs
- AssociationTypeEmitter.cs
- COM2ComponentEditor.cs
- MetadataAssemblyHelper.cs
- SafeLocalMemHandle.cs