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
- StringResourceManager.cs
- WriteableOnDemandPackagePart.cs
- ManagementObject.cs
- HitTestWithPointDrawingContextWalker.cs
- TextEvent.cs
- TextServicesDisplayAttributePropertyRanges.cs
- UniqueIdentifierService.cs
- ExpressionVisitorHelpers.cs
- ObjectSpanRewriter.cs
- LambdaCompiler.Binary.cs
- SafeNativeMethodsOther.cs
- TextServicesPropertyRanges.cs
- FileEnumerator.cs
- WebPartDisplayModeEventArgs.cs
- SecurityDescriptor.cs
- CacheEntry.cs
- TTSEvent.cs
- NavigateUrlConverter.cs
- DbModificationClause.cs
- ComplexTypeEmitter.cs
- EditableTreeList.cs
- XmlILStorageConverter.cs
- WizardStepBase.cs
- DBCommandBuilder.cs
- InstanceCompleteException.cs
- SqlDataSourceEnumerator.cs
- TableCellAutomationPeer.cs
- OutputScopeManager.cs
- XmlRootAttribute.cs
- TransformerTypeCollection.cs
- ExpressionVisitorHelpers.cs
- IImplicitResourceProvider.cs
- GeometryHitTestResult.cs
- IconHelper.cs
- AmbiguousMatchException.cs
- IApplicationTrustManager.cs
- HyperLink.cs
- ToolStripItemClickedEventArgs.cs
- ToolStripTemplateNode.cs
- Graph.cs
- MenuItem.cs
- WSSecurityTokenSerializer.cs
- ValidatedControlConverter.cs
- Mappings.cs
- BoundField.cs
- ConstraintCollection.cs
- XmlMembersMapping.cs
- GlobalizationAssembly.cs
- XComponentModel.cs
- SharingService.cs
- StylusDevice.cs
- ToolStripDropTargetManager.cs
- ColumnTypeConverter.cs
- SecondaryIndexDefinition.cs
- ReferencedAssembly.cs
- ComplexPropertyEntry.cs
- RectConverter.cs
- DataTemplateKey.cs
- ElementAction.cs
- SQLDecimal.cs
- Int32RectConverter.cs
- TextSearch.cs
- XmlLanguage.cs
- AsyncResult.cs
- SecurityState.cs
- NavigationWindow.cs
- ComPlusDiagnosticTraceRecords.cs
- InOutArgument.cs
- Sorting.cs
- BasicExpressionVisitor.cs
- wmiprovider.cs
- EncryptedHeader.cs
- BaseValidator.cs
- WebPartEditorOkVerb.cs
- ProxyGenerator.cs
- SafeLibraryHandle.cs
- CreatingCookieEventArgs.cs
- ServiceThrottle.cs
- ACL.cs
- SHA1Cng.cs
- Int16KeyFrameCollection.cs
- ScrollProperties.cs
- LeafCellTreeNode.cs
- SqlTriggerAttribute.cs
- XmlLoader.cs
- VideoDrawing.cs
- Normalization.cs
- TextDecorationCollection.cs
- FixUpCollection.cs
- TreeBuilderXamlTranslator.cs
- DaylightTime.cs
- ProcessProtocolHandler.cs
- AlternateView.cs
- InternalSafeNativeMethods.cs
- ColorTransform.cs
- XmlSchemaComplexContent.cs
- FixedSchema.cs
- ConditionalWeakTable.cs
- BaseValidator.cs
- SafeNativeMethods.cs