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
- StringUtil.cs
- ScrollChrome.cs
- HebrewCalendar.cs
- RouteItem.cs
- PropertySourceInfo.cs
- SqlCacheDependencyDatabaseCollection.cs
- ApplicationBuildProvider.cs
- ValueType.cs
- XmlSchemaExporter.cs
- LogRestartAreaEnumerator.cs
- _BasicClient.cs
- PropertyIdentifier.cs
- JavascriptCallbackMessageInspector.cs
- XmlSubtreeReader.cs
- PeerCollaboration.cs
- TriggerAction.cs
- UpdatePanel.cs
- StringDictionaryCodeDomSerializer.cs
- InternalConfigSettingsFactory.cs
- OracleDataReader.cs
- SqlExpressionNullability.cs
- SweepDirectionValidation.cs
- ResourceDictionaryCollection.cs
- DataDocumentXPathNavigator.cs
- PathNode.cs
- CatalogZoneBase.cs
- StackBuilderSink.cs
- BitmapEffectInputData.cs
- HttpContextWrapper.cs
- XmlSerializerVersionAttribute.cs
- VideoDrawing.cs
- WebPartMenu.cs
- COM2PropertyBuilderUITypeEditor.cs
- BinaryConverter.cs
- SharedUtils.cs
- QilReplaceVisitor.cs
- X509CertificateRecipientClientCredential.cs
- HandleValueEditor.cs
- StylusOverProperty.cs
- AssertFilter.cs
- MultiBinding.cs
- ToolStripOverflow.cs
- DisableDpiAwarenessAttribute.cs
- ListViewSortEventArgs.cs
- Compensation.cs
- TabItemAutomationPeer.cs
- RequestCacheEntry.cs
- SafeProcessHandle.cs
- ConstrainedDataObject.cs
- InfoCardTrace.cs
- DocumentApplicationJournalEntry.cs
- WindowsAuthenticationModule.cs
- TextWriterEngine.cs
- ParsedAttributeCollection.cs
- StylusButtonCollection.cs
- ClientFormsIdentity.cs
- ImageButton.cs
- SelectionProviderWrapper.cs
- StreamMarshaler.cs
- MenuItemBinding.cs
- DbConnectionStringBuilder.cs
- Animatable.cs
- WindowsListViewGroupHelper.cs
- System.Data_BID.cs
- CursorInteropHelper.cs
- RuntimeWrappedException.cs
- HttpSocketManager.cs
- ECDsa.cs
- HandlerWithFactory.cs
- VirtualPathUtility.cs
- MouseGestureValueSerializer.cs
- MultitargetUtil.cs
- UTF32Encoding.cs
- PreservationFileWriter.cs
- SequenceFullException.cs
- MobileFormsAuthentication.cs
- ToolStripRenderEventArgs.cs
- UnionExpr.cs
- Visual3DCollection.cs
- SingleSelectRootGridEntry.cs
- ExpressionSelection.cs
- Int32CAMarshaler.cs
- HttpResponse.cs
- PriorityQueue.cs
- MenuItemAutomationPeer.cs
- PartialTrustVisibleAssemblyCollection.cs
- AutoResetEvent.cs
- RegisteredDisposeScript.cs
- FtpRequestCacheValidator.cs
- XmlTextReaderImpl.cs
- Types.cs
- BasePattern.cs
- SqlDependencyUtils.cs
- MatrixTransform.cs
- XmlEnumAttribute.cs
- MexHttpsBindingElement.cs
- SmuggledIUnknown.cs
- HttpWriter.cs
- WaitForChangedResult.cs
- RequestTimeoutManager.cs