Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Shared / MS / Internal / HashHelper.cs / 2 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SQLDecimalStorage.cs
- ToolboxItemAttribute.cs
- COM2IProvidePropertyBuilderHandler.cs
- SurrogateSelector.cs
- listitem.cs
- WindowsComboBox.cs
- InstrumentationTracker.cs
- RadioButton.cs
- ViewSimplifier.cs
- PeerObject.cs
- EdmProviderManifest.cs
- Options.cs
- base64Transforms.cs
- MenuStrip.cs
- AppDomainEvidenceFactory.cs
- TerminateDesigner.cs
- ToolBarButton.cs
- Win32NamedPipes.cs
- AxWrapperGen.cs
- XamlTreeBuilder.cs
- TreeNodeStyle.cs
- TableSectionStyle.cs
- EdmPropertyAttribute.cs
- MetadataItemCollectionFactory.cs
- TransactionManager.cs
- PublisherMembershipCondition.cs
- ForAllOperator.cs
- FixedSOMTableRow.cs
- DefaultAssemblyResolver.cs
- XmlQueryOutput.cs
- User.cs
- StackSpiller.Generated.cs
- DesignTimeVisibleAttribute.cs
- WorkflowDesignerMessageFilter.cs
- FormatException.cs
- DtdParser.cs
- AutomationPatternInfo.cs
- SqlVisitor.cs
- Win32KeyboardDevice.cs
- SecondaryIndexList.cs
- XmlSchemaComplexContent.cs
- SchemaAttDef.cs
- WebPartConnectionsCancelVerb.cs
- BoundField.cs
- UnionExpr.cs
- _IPv6Address.cs
- SpeechAudioFormatInfo.cs
- HtmlElement.cs
- DataGridCommandEventArgs.cs
- ReadContentAsBinaryHelper.cs
- LocalFileSettingsProvider.cs
- MessageQueuePermissionEntryCollection.cs
- _SpnDictionary.cs
- PrefixHandle.cs
- QuadraticEase.cs
- Enumerable.cs
- QilTernary.cs
- StreamReader.cs
- RegistrySecurity.cs
- RegistryPermission.cs
- HandleCollector.cs
- MsmqInputChannelListenerBase.cs
- CellPartitioner.cs
- TextEditorMouse.cs
- ApplicationCommands.cs
- Polyline.cs
- ModelPerspective.cs
- AsmxEndpointPickerExtension.cs
- ToolBarPanel.cs
- WindowClosedEventArgs.cs
- DataViewSetting.cs
- SqlProfileProvider.cs
- SplashScreen.cs
- DataSourceGroupCollection.cs
- CollectionsUtil.cs
- FontStyles.cs
- BackgroundWorker.cs
- SoapServerMethod.cs
- ProtocolViolationException.cs
- ConfigUtil.cs
- JavaScriptSerializer.cs
- LayoutDump.cs
- LinqDataSourceValidationException.cs
- HttpGetClientProtocol.cs
- WindowsFormsEditorServiceHelper.cs
- PreProcessInputEventArgs.cs
- DesignerForm.cs
- base64Transforms.cs
- Normalization.cs
- ToolTip.cs
- Script.cs
- IdnElement.cs
- MarkupCompiler.cs
- RequestCacheManager.cs
- ProtectedConfiguration.cs
- _OSSOCK.cs
- SchemaNotation.cs
- SetMemberBinder.cs
- AlignmentXValidation.cs
- IgnoreSectionHandler.cs