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
- TypeConvertions.cs
- SimpleWebHandlerParser.cs
- ApplicationFileParser.cs
- ListViewUpdateEventArgs.cs
- TransportChannelFactory.cs
- EditorPart.cs
- ErrorRuntimeConfig.cs
- Missing.cs
- SymmetricKey.cs
- SspiWrapper.cs
- BuildResultCache.cs
- ControlLocalizer.cs
- TextFormatterContext.cs
- RightNameExpirationInfoPair.cs
- HostExecutionContextManager.cs
- UserControlBuildProvider.cs
- ZoneLinkButton.cs
- BitmapMetadataEnumerator.cs
- arc.cs
- DataServiceConfiguration.cs
- remotingproxy.cs
- WindowsImpersonationContext.cs
- XmlIgnoreAttribute.cs
- FormViewDeletedEventArgs.cs
- TemplateEditingFrame.cs
- CodeValidator.cs
- UntypedNullExpression.cs
- SecurityContextTokenCache.cs
- FillErrorEventArgs.cs
- SHA512Cng.cs
- DataServiceRequest.cs
- ForeignKeyConstraint.cs
- RadioButton.cs
- RelationalExpressions.cs
- TriggerBase.cs
- WorkBatch.cs
- Calendar.cs
- SHA512.cs
- Tokenizer.cs
- CapabilitiesState.cs
- TypeName.cs
- CommunicationObject.cs
- NetCodeGroup.cs
- WindowVisualStateTracker.cs
- TerminatorSinks.cs
- SerialErrors.cs
- ManagementObjectCollection.cs
- ListMarkerLine.cs
- MasterPageCodeDomTreeGenerator.cs
- sqlnorm.cs
- PolygonHotSpot.cs
- MemberAssignmentAnalysis.cs
- ItemCheckEvent.cs
- StorageBasedPackageProperties.cs
- MediaElementAutomationPeer.cs
- X509Chain.cs
- BaseProcessor.cs
- EditingCommands.cs
- InputLangChangeEvent.cs
- SoapTypeAttribute.cs
- ProgressBarAutomationPeer.cs
- Scalars.cs
- PropertyInformation.cs
- SqlFunctionAttribute.cs
- DbDataRecord.cs
- FacetDescription.cs
- XmlCountingReader.cs
- Durable.cs
- MethodSignatureGenerator.cs
- CloseSequenceResponse.cs
- Compiler.cs
- WindowsGraphicsWrapper.cs
- WebPartConnectionsCancelVerb.cs
- WebServiceParameterData.cs
- SafeNativeMethods.cs
- TableSectionStyle.cs
- DocumentationServerProtocol.cs
- ResourceDictionaryCollection.cs
- ConnectionStringSettingsCollection.cs
- ProcessModelInfo.cs
- StringReader.cs
- ServiceDebugElement.cs
- FreezableCollection.cs
- TextDecorationUnitValidation.cs
- TraceContextRecord.cs
- DrawingContextDrawingContextWalker.cs
- AssemblyBuilder.cs
- SqlColumnizer.cs
- NodeFunctions.cs
- DelegatedStream.cs
- ConfigDefinitionUpdates.cs
- BlockCollection.cs
- Vertex.cs
- SynchronizingStream.cs
- SHA384Managed.cs
- RealProxy.cs
- HandledMouseEvent.cs
- XmlCDATASection.cs
- FontSourceCollection.cs
- FileSystemWatcher.cs