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
- Visitor.cs
- NavigationEventArgs.cs
- DbDataSourceEnumerator.cs
- ImageMapEventArgs.cs
- TargetFrameworkAttribute.cs
- ValidatorCollection.cs
- DataChangedEventManager.cs
- AmbientValueAttribute.cs
- ContextQuery.cs
- CacheAxisQuery.cs
- ApplicationSecurityManager.cs
- FrugalMap.cs
- LateBoundBitmapDecoder.cs
- ValidationError.cs
- ConstructorExpr.cs
- RenderData.cs
- ContentPlaceHolder.cs
- AuthenticationModeHelper.cs
- PolyBezierSegmentFigureLogic.cs
- HttpListenerResponse.cs
- ChangePasswordDesigner.cs
- LayoutInformation.cs
- HtmlEmptyTagControlBuilder.cs
- SyncMethodInvoker.cs
- PipeException.cs
- webclient.cs
- InputBuffer.cs
- TypedTableBaseExtensions.cs
- AudioFileOut.cs
- HttpServerUtilityBase.cs
- Int64Animation.cs
- VariableExpressionConverter.cs
- TreeNodeBinding.cs
- PageEventArgs.cs
- InfiniteTimeSpanConverter.cs
- Expression.cs
- PeerNameRecord.cs
- SqlParameterCollection.cs
- Keyboard.cs
- ApplicationBuildProvider.cs
- SafeTimerHandle.cs
- _SslState.cs
- UnknownBitmapDecoder.cs
- ColorConvertedBitmapExtension.cs
- SchemaDeclBase.cs
- TypeExtensionConverter.cs
- AuthorizationPolicyTypeElement.cs
- SHA512Managed.cs
- PolicyLevel.cs
- TreeWalker.cs
- XmlWellformedWriter.cs
- BamlWriter.cs
- UserControlCodeDomTreeGenerator.cs
- SqlColumnizer.cs
- TextContainer.cs
- ManifestSignedXml.cs
- EndOfStreamException.cs
- AutomationElementIdentifiers.cs
- SchemaSetCompiler.cs
- PartialArray.cs
- DynamicUpdateCommand.cs
- EditorAttributeInfo.cs
- SoapParser.cs
- OdbcPermission.cs
- ArithmeticException.cs
- InteropBitmapSource.cs
- AssemblyBuilder.cs
- ComPlusContractBehavior.cs
- NavigationHelper.cs
- TableSectionStyle.cs
- DBCommand.cs
- ModelItem.cs
- ScrollEventArgs.cs
- NonPrimarySelectionGlyph.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- TableColumn.cs
- ServiceEndpointAssociationProvider.cs
- SystemResourceHost.cs
- PictureBoxDesigner.cs
- IgnoreFlushAndCloseStream.cs
- SafeLocalMemHandle.cs
- StringAnimationBase.cs
- FontUnitConverter.cs
- ExecutionContext.cs
- TextPointer.cs
- MarkupExtensionParser.cs
- ListSurrogate.cs
- EmbossBitmapEffect.cs
- CheckBoxField.cs
- TreeNodeBinding.cs
- OracleCommandSet.cs
- assemblycache.cs
- HtmlInputSubmit.cs
- CompositeKey.cs
- login.cs
- mediaeventshelper.cs
- NetPeerTcpBindingCollectionElement.cs
- ThreadExceptionDialog.cs
- FlowLayout.cs
- GridToolTip.cs