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
- AdapterUtil.cs
- FlowNode.cs
- MaterialCollection.cs
- CollectionBase.cs
- Attributes.cs
- UIPropertyMetadata.cs
- DefaultTextStoreTextComposition.cs
- SqlDataSourceEnumerator.cs
- BrowserCapabilitiesCompiler.cs
- ContainerUIElement3D.cs
- Calendar.cs
- CustomAttributeFormatException.cs
- Span.cs
- HotSpotCollection.cs
- xamlnodes.cs
- ActivationArguments.cs
- SmtpNetworkElement.cs
- BindUriHelper.cs
- TimelineGroup.cs
- NotEqual.cs
- PublisherIdentityPermission.cs
- GridViewColumnCollection.cs
- DesignConnectionCollection.cs
- BinHexEncoder.cs
- OracleLob.cs
- ChineseLunisolarCalendar.cs
- WorkflowMessageEventArgs.cs
- StorageRoot.cs
- DataBoundControlHelper.cs
- SmtpSection.cs
- NetworkInterface.cs
- TypeDefinition.cs
- DrawingAttributesDefaultValueFactory.cs
- WebEvents.cs
- FormatSelectingMessageInspector.cs
- ReflectionHelper.cs
- ObjectIDGenerator.cs
- SystemIcmpV4Statistics.cs
- FlowDocument.cs
- DaylightTime.cs
- CodePropertyReferenceExpression.cs
- PropertyGrid.cs
- AddingNewEventArgs.cs
- QueuePathEditor.cs
- DocumentSchemaValidator.cs
- _ChunkParse.cs
- CompositeActivityTypeDescriptor.cs
- ObjectStateEntryDbDataRecord.cs
- SmtpSection.cs
- PageCatalogPart.cs
- SelfIssuedAuthProofToken.cs
- DefaultAutoFieldGenerator.cs
- HighContrastHelper.cs
- DataMemberConverter.cs
- VisemeEventArgs.cs
- _ConnectionGroup.cs
- ObjectFullSpanRewriter.cs
- BitFlagsGenerator.cs
- SignalGate.cs
- StringValidatorAttribute.cs
- XmlElementAttributes.cs
- MonthChangedEventArgs.cs
- TextBreakpoint.cs
- MD5CryptoServiceProvider.cs
- LockCookie.cs
- AdRotator.cs
- FieldReference.cs
- ServiceOperationInfoTypeConverter.cs
- BehaviorDragDropEventArgs.cs
- Subtree.cs
- SqlUserDefinedAggregateAttribute.cs
- FactoryGenerator.cs
- FontNamesConverter.cs
- LabelDesigner.cs
- OneOfScalarConst.cs
- ObjectAssociationEndMapping.cs
- ExpressionValueEditor.cs
- InstanceData.cs
- WindowsNonControl.cs
- PageRanges.cs
- DesignerVerbCollection.cs
- TextCharacters.cs
- BadImageFormatException.cs
- BypassElementCollection.cs
- EntityDataSourceContextCreatingEventArgs.cs
- ProxyGenerationError.cs
- RepeatButton.cs
- DependencyPropertyKey.cs
- RuntimeHandles.cs
- SqlClientWrapperSmiStreamChars.cs
- DynamicQueryableWrapper.cs
- EmptyEnumerator.cs
- ComplexPropertyEntry.cs
- Token.cs
- HtmlElement.cs
- SAPICategories.cs
- TemplatePagerField.cs
- XmlElementAttribute.cs
- ClassHandlersStore.cs
- ConnectionManager.cs