Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ImageSource.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- FrameworkReadOnlyPropertyMetadata.cs
- PointValueSerializer.cs
- NameValueCollection.cs
- ViewStateModeByIdAttribute.cs
- AnnotationObservableCollection.cs
- OAVariantLib.cs
- ProxyWebPartConnectionCollection.cs
- HwndHost.cs
- ThemeInfoAttribute.cs
- _PooledStream.cs
- XmlAttributes.cs
- MediaTimeline.cs
- DataGridDesigner.cs
- XmlBufferedByteStreamReader.cs
- XPathSingletonIterator.cs
- DataGridViewCellPaintingEventArgs.cs
- XmlRootAttribute.cs
- SettingsPropertyNotFoundException.cs
- ExtenderProvidedPropertyAttribute.cs
- TextCompositionManager.cs
- ManipulationStartingEventArgs.cs
- RenderData.cs
- DataGridViewRowConverter.cs
- SequenceRangeCollection.cs
- IndexingContentUnit.cs
- InstanceKeyView.cs
- SliderAutomationPeer.cs
- ToolStripProgressBar.cs
- WsrmTraceRecord.cs
- MenuItemStyleCollection.cs
- SafeFindHandle.cs
- TextRunProperties.cs
- XsltSettings.cs
- LexicalChunk.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- SystemKeyConverter.cs
- SymLanguageType.cs
- AdPostCacheSubstitution.cs
- ExtractedStateEntry.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- QuadraticBezierSegment.cs
- FontDifferentiator.cs
- DataGridParentRows.cs
- DataControlReferenceCollection.cs
- DataViewManagerListItemTypeDescriptor.cs
- ThreadPool.cs
- FileChangeNotifier.cs
- Compress.cs
- AsyncStreamReader.cs
- RunWorkerCompletedEventArgs.cs
- RC2.cs
- X509Utils.cs
- GenericPrincipal.cs
- ButtonBase.cs
- CommandEventArgs.cs
- TypeConverterAttribute.cs
- DataBindEngine.cs
- EqualityComparer.cs
- PackageDocument.cs
- Util.cs
- EdgeProfileValidation.cs
- SizeConverter.cs
- TabletDeviceInfo.cs
- MsmqProcessProtocolHandler.cs
- MultiBinding.cs
- SqlConnectionString.cs
- ElementMarkupObject.cs
- BitVector32.cs
- DesignRelation.cs
- TrackingCondition.cs
- BookmarkScopeManager.cs
- Listbox.cs
- SwitchLevelAttribute.cs
- ContextQuery.cs
- Message.cs
- X509SubjectKeyIdentifierClause.cs
- brushes.cs
- MatrixTransform3D.cs
- HScrollBar.cs
- Screen.cs
- _ListenerAsyncResult.cs
- ColumnReorderedEventArgs.cs
- OdbcCommand.cs
- LinkedList.cs
- PropertyEmitterBase.cs
- DataBoundControlAdapter.cs
- BitmapEffectOutputConnector.cs
- SmtpNegotiateAuthenticationModule.cs
- IChannel.cs
- PathFigure.cs
- ViewBox.cs
- TreeNodeBinding.cs
- StaticDataManager.cs
- NullToBooleanConverter.cs
- CharKeyFrameCollection.cs
- SequenceDesignerAccessibleObject.cs
- ControlValuePropertyAttribute.cs
- XmlWrappingReader.cs