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
- SqlDataSourceQueryEditorForm.cs
- ValidatingReaderNodeData.cs
- ServerType.cs
- RawTextInputReport.cs
- DataViewSettingCollection.cs
- Timer.cs
- ITreeGenerator.cs
- XmlAttribute.cs
- OutputScopeManager.cs
- StringHelper.cs
- AmbiguousMatchException.cs
- SmiContext.cs
- EntityProviderFactory.cs
- XPathParser.cs
- TypeAccessException.cs
- DataGridViewAdvancedBorderStyle.cs
- BackStopAuthenticationModule.cs
- HttpsChannelFactory.cs
- BulletedList.cs
- ZipIOCentralDirectoryBlock.cs
- WebPartEditVerb.cs
- DecoratedNameAttribute.cs
- WorkflowServiceHost.cs
- WsiProfilesElementCollection.cs
- CrossContextChannel.cs
- BamlBinaryReader.cs
- DbCommandDefinition.cs
- QilScopedVisitor.cs
- HandlerBase.cs
- DataListItem.cs
- NativeCppClassAttribute.cs
- SafeBitVector32.cs
- AsmxEndpointPickerExtension.cs
- Parser.cs
- ParenthesizePropertyNameAttribute.cs
- SerializationStore.cs
- BinaryMessageEncodingElement.cs
- SatelliteContractVersionAttribute.cs
- PageScaling.cs
- AssemblyNameProxy.cs
- DoubleCollectionConverter.cs
- DataGridLength.cs
- Process.cs
- EventMemberCodeDomSerializer.cs
- BuildResultCache.cs
- SqlNodeAnnotations.cs
- DateBoldEvent.cs
- UmAlQuraCalendar.cs
- IfJoinedCondition.cs
- milrender.cs
- IntSecurity.cs
- RuntimeConfigurationRecord.cs
- XmlTextReader.cs
- ConnectionStringsExpressionBuilder.cs
- ListArgumentProvider.cs
- Scene3D.cs
- ThicknessKeyFrameCollection.cs
- XmlBindingWorker.cs
- SqlConnectionPoolGroupProviderInfo.cs
- safex509handles.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- DocumentPageViewAutomationPeer.cs
- XmlSortKeyAccumulator.cs
- VectorConverter.cs
- TextTreeTextElementNode.cs
- CompilerTypeWithParams.cs
- PrintPreviewGraphics.cs
- AnimatedTypeHelpers.cs
- Activity.cs
- DoubleCollectionValueSerializer.cs
- TypedElement.cs
- CodeAttributeArgument.cs
- SqlLiftWhereClauses.cs
- Number.cs
- SrgsRuleRef.cs
- WinFormsComponentEditor.cs
- DependencyProperty.cs
- _NegoState.cs
- XmlSchemaInferenceException.cs
- InvalidCommandTreeException.cs
- RemoteWebConfigurationHostStream.cs
- Queue.cs
- OpenTypeMethods.cs
- WebBrowsableAttribute.cs
- ToolStripTemplateNode.cs
- CacheDependency.cs
- SharedStatics.cs
- ObfuscateAssemblyAttribute.cs
- DataGridRow.cs
- TransactionManager.cs
- OutputCacheProfileCollection.cs
- TemplateControlParser.cs
- _Events.cs
- ZipIORawDataFileBlock.cs
- RawAppCommandInputReport.cs
- IdleTimeoutMonitor.cs
- WorkflowMarkupElementEventArgs.cs
- COM2ColorConverter.cs
- ShowExpandedMultiValueConverter.cs
- ImageListStreamer.cs