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
- FieldValue.cs
- recordstate.cs
- VersionPair.cs
- SerializationEventsCache.cs
- ScriptModule.cs
- figurelengthconverter.cs
- BmpBitmapEncoder.cs
- WebPartsSection.cs
- RadioButtonRenderer.cs
- WMICapabilities.cs
- TabControlEvent.cs
- DataGridViewCellFormattingEventArgs.cs
- BitmapEffectRenderDataResource.cs
- SpeechSeg.cs
- CollectionEditorDialog.cs
- TextRunProperties.cs
- MethodBuilder.cs
- ReaderContextStackData.cs
- ServiceX509SecurityTokenProvider.cs
- SmtpDateTime.cs
- DataSourceXmlAttributeAttribute.cs
- Rights.cs
- _UriTypeConverter.cs
- SortedDictionary.cs
- LambdaSerializationException.cs
- MetadataProperty.cs
- SortedDictionary.cs
- HtmlContainerControl.cs
- EncoderExceptionFallback.cs
- StorageModelBuildProvider.cs
- NetTcpSectionData.cs
- TransformationRules.cs
- SequentialWorkflowHeaderFooter.cs
- ObjectManager.cs
- ZoneLinkButton.cs
- SortableBindingList.cs
- IteratorFilter.cs
- Ipv6Element.cs
- ComboBoxItem.cs
- CheckBoxBaseAdapter.cs
- DesignerWidgets.cs
- ScrollEvent.cs
- ExecutionEngineException.cs
- WebSysDisplayNameAttribute.cs
- XmlExtensionFunction.cs
- StringFunctions.cs
- AbsoluteQuery.cs
- SettingsPropertyCollection.cs
- ISFClipboardData.cs
- RSACryptoServiceProvider.cs
- UnaryNode.cs
- NotSupportedException.cs
- StringInfo.cs
- RoutedPropertyChangedEventArgs.cs
- XmlReflectionMember.cs
- EventMappingSettings.cs
- HtmlTableCell.cs
- Component.cs
- TreeWalkHelper.cs
- ProjectedSlot.cs
- XmlWrappingReader.cs
- ObjectQueryExecutionPlan.cs
- CssStyleCollection.cs
- InkPresenter.cs
- MetadataUtil.cs
- SinglePageViewer.cs
- FixedTextBuilder.cs
- ConfigXmlAttribute.cs
- QueryCacheEntry.cs
- GestureRecognitionResult.cs
- GestureRecognizer.cs
- AsymmetricSignatureFormatter.cs
- FixedBufferAttribute.cs
- ScrollBarRenderer.cs
- RSAPKCS1SignatureDeformatter.cs
- UIPropertyMetadata.cs
- RecordBuilder.cs
- ColumnHeaderConverter.cs
- PersianCalendar.cs
- PackWebRequest.cs
- OleDbInfoMessageEvent.cs
- XmlDataDocument.cs
- ClipboardData.cs
- ClaimSet.cs
- RequestNavigateEventArgs.cs
- TabRenderer.cs
- ItemCheckedEvent.cs
- TemplateAction.cs
- XPathNodeHelper.cs
- ThreadAttributes.cs
- TypeLoadException.cs
- ExpressionBindingCollection.cs
- WebPartVerbsEventArgs.cs
- DesignSurfaceManager.cs
- EmbeddedMailObject.cs
- ComponentManagerBroker.cs
- MatcherBuilder.cs
- XsltException.cs
- Renderer.cs
- ModelItemCollection.cs