Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Shared / MS / Internal / HashHelper.cs / 2 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AssemblyInfo.cs
- RangeValidator.cs
- KeyTime.cs
- XmlEncoding.cs
- LongValidator.cs
- ConfigXmlText.cs
- Constraint.cs
- SafeRightsManagementQueryHandle.cs
- PieceNameHelper.cs
- EmissiveMaterial.cs
- Qualifier.cs
- StreamGeometryContext.cs
- RegisteredArrayDeclaration.cs
- SettingsPropertyValueCollection.cs
- CodeMemberProperty.cs
- DoubleStorage.cs
- QueryGenerator.cs
- TextStore.cs
- WebPart.cs
- XmlNavigatorStack.cs
- UTF8Encoding.cs
- COAUTHIDENTITY.cs
- DesignerWebPartChrome.cs
- DebugInfoExpression.cs
- DataSourceHelper.cs
- ArraySortHelper.cs
- NameValueFileSectionHandler.cs
- RegexWorker.cs
- FormCollection.cs
- AppDomainResourcePerfCounters.cs
- InputReport.cs
- SystemIPv6InterfaceProperties.cs
- _NestedMultipleAsyncResult.cs
- BindingList.cs
- SecurityState.cs
- MimeWriter.cs
- ThaiBuddhistCalendar.cs
- ToolStripHighContrastRenderer.cs
- SqlBulkCopyColumnMappingCollection.cs
- XPathDescendantIterator.cs
- RSAOAEPKeyExchangeDeformatter.cs
- IntSumAggregationOperator.cs
- SqlDataReaderSmi.cs
- XmlSerializationWriter.cs
- SchemaNamespaceManager.cs
- XamlWriter.cs
- DocumentViewerAutomationPeer.cs
- Polygon.cs
- XsltContext.cs
- WebPartMovingEventArgs.cs
- XmlAttributeCache.cs
- EnumCodeDomSerializer.cs
- Blend.cs
- MobileControlsSectionHelper.cs
- ConfigXmlWhitespace.cs
- WebPartTracker.cs
- HandlerFactoryWrapper.cs
- RelationshipEndMember.cs
- EraserBehavior.cs
- LeaseManager.cs
- SqlCacheDependencyDatabase.cs
- _ContextAwareResult.cs
- WorkflowItemsPresenter.cs
- Stream.cs
- EntityWrapper.cs
- LineServicesCallbacks.cs
- BatchServiceHost.cs
- IdleTimeoutMonitor.cs
- RtfToken.cs
- InputProviderSite.cs
- MergablePropertyAttribute.cs
- Compiler.cs
- JoinElimination.cs
- SuppressMessageAttribute.cs
- SelectionChangedEventArgs.cs
- WindowsFormsHelpers.cs
- FaultCallbackWrapper.cs
- XPathParser.cs
- BatchStream.cs
- XmlSchemaValidationException.cs
- StandardBindingElementCollection.cs
- WebPartVerbsEventArgs.cs
- ImportException.cs
- CachedCompositeFamily.cs
- TextContainerChangeEventArgs.cs
- Application.cs
- WinInetCache.cs
- CornerRadiusConverter.cs
- ParallelLoopState.cs
- SqlUtil.cs
- PropertyPathConverter.cs
- hebrewshape.cs
- PeerCollaboration.cs
- ServiceEndpointElement.cs
- HtmlInputCheckBox.cs
- SqlCachedBuffer.cs
- XmlObjectSerializerWriteContext.cs
- IfElseDesigner.xaml.cs
- Int64Animation.cs
- EntitySqlQueryCacheKey.cs