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
- TempEnvironment.cs
- RenderContext.cs
- ObjectCloneHelper.cs
- PropertyChangedEventManager.cs
- DataGridHelper.cs
- PerformanceCounterPermissionAttribute.cs
- ScrollViewerAutomationPeer.cs
- TextElementCollectionHelper.cs
- UrlPropertyAttribute.cs
- WindowsContainer.cs
- ConfigXmlAttribute.cs
- ProcessModelInfo.cs
- DecoderFallbackWithFailureFlag.cs
- DocumentOrderComparer.cs
- Popup.cs
- TemplateBindingExpression.cs
- BreakRecordTable.cs
- NetNamedPipeSecurityElement.cs
- TemplateControl.cs
- DataGridTextBoxColumn.cs
- BitmapEffectvisualstate.cs
- DesignTimeVisibleAttribute.cs
- ListBindingHelper.cs
- documentation.cs
- HtmlTextArea.cs
- PriorityQueue.cs
- LocalFileSettingsProvider.cs
- RouteItem.cs
- ContentHostHelper.cs
- PageAdapter.cs
- DbgCompiler.cs
- SqlUserDefinedAggregateAttribute.cs
- ZipIOBlockManager.cs
- XmlSignatureProperties.cs
- BindValidationContext.cs
- COM2IDispatchConverter.cs
- SelectionProcessor.cs
- CodeRemoveEventStatement.cs
- GenericUriParser.cs
- HierarchicalDataBoundControl.cs
- MimeTypeAttribute.cs
- OneWayBindingElement.cs
- NameObjectCollectionBase.cs
- XsltCompileContext.cs
- VirtualizedCellInfoCollection.cs
- ModulesEntry.cs
- Size.cs
- DPCustomTypeDescriptor.cs
- Oci.cs
- PermissionSetTriple.cs
- MessageSmuggler.cs
- unsafenativemethodsother.cs
- ImmComposition.cs
- DataGridViewEditingControlShowingEventArgs.cs
- HostingEnvironmentException.cs
- SegmentInfo.cs
- AccessDataSourceWizardForm.cs
- TableLayoutStyleCollection.cs
- UInt16Converter.cs
- ScalarConstant.cs
- ProfileProvider.cs
- TreeViewItemAutomationPeer.cs
- dbenumerator.cs
- CompressionTransform.cs
- GeneratedContractType.cs
- ComboBox.cs
- WebConfigurationHostFileChange.cs
- ViewgenGatekeeper.cs
- SqlDependency.cs
- TextureBrush.cs
- PreloadedPackages.cs
- printdlgexmarshaler.cs
- DrawListViewSubItemEventArgs.cs
- ProxyManager.cs
- InvalidOperationException.cs
- ListViewItem.cs
- DataGridItemCollection.cs
- ProtocolsSection.cs
- AggregationMinMaxHelpers.cs
- fixedPageContentExtractor.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- XmlElement.cs
- AlphaSortedEnumConverter.cs
- MultiPropertyDescriptorGridEntry.cs
- WebPartConnectionCollection.cs
- ChannelSinkStacks.cs
- HtmlFormWrapper.cs
- RotateTransform3D.cs
- MouseEvent.cs
- ServicePoint.cs
- CurrencyWrapper.cs
- EasingKeyFrames.cs
- TableSectionStyle.cs
- ToolStripDesignerUtils.cs
- ColumnWidthChangingEvent.cs
- BufferedGraphicsContext.cs
- HelpInfo.cs
- MaterialCollection.cs
- DataBindingHandlerAttribute.cs
- VirtualPathUtility.cs