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
- ContentElement.cs
- AccessViolationException.cs
- ReadOnlyCollection.cs
- AutoGeneratedField.cs
- RemotingConfigParser.cs
- DataGridTextBox.cs
- SecurityPolicySection.cs
- CodeTypeReference.cs
- HTMLTagNameToTypeMapper.cs
- GenericPrincipal.cs
- ChildTable.cs
- DataListItem.cs
- AnimationStorage.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- RepeaterItem.cs
- odbcmetadatacollectionnames.cs
- RecommendedAsConfigurableAttribute.cs
- Polyline.cs
- MULTI_QI.cs
- WsdlWriter.cs
- DESCryptoServiceProvider.cs
- AudioFormatConverter.cs
- DataServiceException.cs
- DataBindingHandlerAttribute.cs
- XmlEventCache.cs
- SmiXetterAccessMap.cs
- UriSectionReader.cs
- counter.cs
- Line.cs
- SqlEnums.cs
- WinHttpWebProxyFinder.cs
- CultureInfoConverter.cs
- TypeBuilderInstantiation.cs
- RijndaelManagedTransform.cs
- InheritablePropertyChangeInfo.cs
- ObservableDictionary.cs
- TargetControlTypeCache.cs
- Serializer.cs
- EntityDataSourceDataSelectionPanel.cs
- DynamicPropertyReader.cs
- CookieProtection.cs
- MetadataImporterQuotas.cs
- BitmapEffectInput.cs
- CompilationRelaxations.cs
- CompositionAdorner.cs
- EncryptedData.cs
- AppDomainUnloadedException.cs
- SymbolTable.cs
- IntSecurity.cs
- ComponentDispatcherThread.cs
- OracleFactory.cs
- DispatcherSynchronizationContext.cs
- ConcurrentStack.cs
- ChameleonKey.cs
- ImmutableObjectAttribute.cs
- CustomValidator.cs
- DataServices.cs
- DirectoryNotFoundException.cs
- DefaultAutoFieldGenerator.cs
- XmlQueryCardinality.cs
- XsltContext.cs
- AppDomainFactory.cs
- CompilerParameters.cs
- ChildDocumentBlock.cs
- Codec.cs
- RSAOAEPKeyExchangeFormatter.cs
- AssociationTypeEmitter.cs
- RbTree.cs
- IisTraceListener.cs
- TreeViewItemAutomationPeer.cs
- CryptoConfig.cs
- EncodingNLS.cs
- SamlSecurityToken.cs
- DocobjHost.cs
- StructuralCache.cs
- Button.cs
- WebPartDisplayMode.cs
- IDataContractSurrogate.cs
- ConfigXmlElement.cs
- SqlServices.cs
- RolePrincipal.cs
- Connection.cs
- DataGridViewCellCollection.cs
- FragmentQueryKB.cs
- SequentialUshortCollection.cs
- TypeConverterHelper.cs
- MsmqIntegrationBindingElement.cs
- Shared.cs
- MessageSmuggler.cs
- MergeLocalizationDirectives.cs
- BulletChrome.cs
- OdbcUtils.cs
- GridViewRowCollection.cs
- ObjectQueryState.cs
- ResourceLoader.cs
- _LazyAsyncResult.cs
- DataGridLinkButton.cs
- BypassElement.cs
- OdbcHandle.cs
- ButtonPopupAdapter.cs