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
- RecordsAffectedEventArgs.cs
- Rotation3DAnimation.cs
- CreateUserWizardStep.cs
- Or.cs
- CheckBoxAutomationPeer.cs
- WebPartVerbsEventArgs.cs
- DbProviderFactories.cs
- Viewport3DAutomationPeer.cs
- NativeMethods.cs
- LoaderAllocator.cs
- oledbconnectionstring.cs
- OutOfMemoryException.cs
- WorkflowLayouts.cs
- TranslateTransform.cs
- AuthenticatedStream.cs
- PointCollectionConverter.cs
- FixedDocumentPaginator.cs
- BinaryWriter.cs
- SecurityProtocolCorrelationState.cs
- updatecommandorderer.cs
- GestureRecognitionResult.cs
- DispatcherEventArgs.cs
- ImageBrush.cs
- MultiByteCodec.cs
- SiteMapPathDesigner.cs
- AudioDeviceOut.cs
- DesignTimeVisibleAttribute.cs
- documentsequencetextcontainer.cs
- OdbcEnvironmentHandle.cs
- PersonalizationStateInfoCollection.cs
- ResourceSet.cs
- WorkflowMarkupSerializationProvider.cs
- CodeMemberProperty.cs
- RequestTimeoutManager.cs
- BitmapEffectGroup.cs
- ImageMap.cs
- TextDecorationLocationValidation.cs
- CallbackDebugElement.cs
- Soap.cs
- sqlstateclientmanager.cs
- ADMembershipUser.cs
- VisualCollection.cs
- ServiceModelDictionary.cs
- SHA256Managed.cs
- TextTreeRootTextBlock.cs
- ActiveXMessageFormatter.cs
- ApplicationCommands.cs
- WorkflowRuntimeServiceElement.cs
- ConditionValidator.cs
- FileSystemEventArgs.cs
- ExpressionConverter.cs
- ListSortDescriptionCollection.cs
- MapPathBasedVirtualPathProvider.cs
- SystemUnicastIPAddressInformation.cs
- SqlAliasesReferenced.cs
- RijndaelManaged.cs
- ClientApiGenerator.cs
- XsdValidatingReader.cs
- Authorization.cs
- Matrix.cs
- DataGridViewCellMouseEventArgs.cs
- Ppl.cs
- FontInfo.cs
- TdsParserStateObject.cs
- EmptyEnumerator.cs
- MonthCalendar.cs
- RadioButton.cs
- WrapperEqualityComparer.cs
- ToolboxItem.cs
- ComponentManagerBroker.cs
- DataListItemEventArgs.cs
- ConstrainedDataObject.cs
- CustomValidator.cs
- MenuCommandService.cs
- FloatMinMaxAggregationOperator.cs
- TablePatternIdentifiers.cs
- HTMLTextWriter.cs
- StringUtil.cs
- DataColumnMappingCollection.cs
- UIElementParaClient.cs
- ProjectionRewriter.cs
- StylusPoint.cs
- Identity.cs
- ExtendedPropertiesHandler.cs
- IntranetCredentialPolicy.cs
- DriveInfo.cs
- XPathNode.cs
- XmlReader.cs
- RelationshipEndMember.cs
- DateTimeParse.cs
- ColorConvertedBitmap.cs
- DiscoveryServerProtocol.cs
- DataGridColumn.cs
- Executor.cs
- X509CertificateTrustedIssuerElementCollection.cs
- DataView.cs
- NameValueCollection.cs
- MarshalDirectiveException.cs
- MessagePartSpecification.cs
- KnownColorTable.cs