Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- PrintPreviewDialog.cs
- UIElementHelper.cs
- GeometryGroup.cs
- ActivityDesignerLayoutSerializers.cs
- FlowchartStart.xaml.cs
- SafeMarshalContext.cs
- MonitorWrapper.cs
- EndpointAddressMessageFilter.cs
- RotateTransform.cs
- TextFindEngine.cs
- cache.cs
- XmlSchemaCollection.cs
- ContainerVisual.cs
- BadImageFormatException.cs
- PointCollectionValueSerializer.cs
- HttpModule.cs
- ObjectConverter.cs
- CompilationUtil.cs
- TypeDescriptionProviderAttribute.cs
- IdentityHolder.cs
- DBConnectionString.cs
- CngAlgorithmGroup.cs
- CallbackHandler.cs
- ConsoleKeyInfo.cs
- SerTrace.cs
- RegexInterpreter.cs
- FontInfo.cs
- KeyNotFoundException.cs
- UrlPropertyAttribute.cs
- MachineKeySection.cs
- ThrowHelper.cs
- ObjectCache.cs
- NamespaceCollection.cs
- PhoneCall.cs
- PassportIdentity.cs
- XmlStringTable.cs
- FileReservationCollection.cs
- TriggerActionCollection.cs
- PathNode.cs
- Animatable.cs
- Animatable.cs
- Int32KeyFrameCollection.cs
- MSAAWinEventWrap.cs
- ProxyGenerator.cs
- RelOps.cs
- _Rfc2616CacheValidators.cs
- HtmlProps.cs
- FieldMetadata.cs
- StringBuilder.cs
- ToolStripGrip.cs
- XmlChildNodes.cs
- VerifyHashRequest.cs
- WebPartCatalogCloseVerb.cs
- WorkflowInvoker.cs
- DesignerAutoFormat.cs
- Point3DCollectionConverter.cs
- SeekStoryboard.cs
- ToolStripControlHost.cs
- GeometryDrawing.cs
- OperationResponse.cs
- ContentPresenter.cs
- SplitterCancelEvent.cs
- LabelLiteral.cs
- ColorAnimation.cs
- TextFormatterHost.cs
- DiagnosticsConfiguration.cs
- XamlToRtfWriter.cs
- HttpWebRequest.cs
- HostedImpersonationContext.cs
- InternalConfigEventArgs.cs
- ExtensionWindowHeader.cs
- ExpanderAutomationPeer.cs
- NavigationFailedEventArgs.cs
- MenuCommandsChangedEventArgs.cs
- SHA1Managed.cs
- XomlDesignerLoader.cs
- ToolStripRenderer.cs
- SamlAction.cs
- MatrixTransform.cs
- XmlSchemaSimpleTypeList.cs
- RoutedPropertyChangedEventArgs.cs
- XPathSingletonIterator.cs
- MeasureData.cs
- ScrollPattern.cs
- SqlSupersetValidator.cs
- PasswordDeriveBytes.cs
- Metafile.cs
- PropertyTabAttribute.cs
- StringComparer.cs
- NetworkAddressChange.cs
- LinqDataSourceDeleteEventArgs.cs
- OdbcEnvironmentHandle.cs
- WebPartUtil.cs
- xsdvalidator.cs
- CompiledAction.cs
- OutputScopeManager.cs
- TextTreeDeleteContentUndoUnit.cs
- PerfService.cs
- ToolStripSystemRenderer.cs
- FragmentQueryProcessor.cs