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
- RedistVersionInfo.cs
- RectAnimationClockResource.cs
- precedingsibling.cs
- SqlProviderServices.cs
- SafeEventLogReadHandle.cs
- WithStatement.cs
- DateTimeSerializationSection.cs
- ListViewItemMouseHoverEvent.cs
- StringReader.cs
- SqlBooleanizer.cs
- EditBehavior.cs
- VisualStateChangedEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- SecurityCriticalDataForSet.cs
- FormatterServices.cs
- FilterElement.cs
- BamlRecords.cs
- AutoGeneratedField.cs
- EntityConnection.cs
- TokenBasedSet.cs
- RayMeshGeometry3DHitTestResult.cs
- ValuePattern.cs
- SqlServer2KCompatibilityCheck.cs
- TraceFilter.cs
- ListViewCancelEventArgs.cs
- MSHTMLHost.cs
- TextElementEnumerator.cs
- CfgParser.cs
- XsdCachingReader.cs
- HttpListenerContext.cs
- BinaryHeap.cs
- FindSimilarActivitiesVerb.cs
- ExpandCollapsePattern.cs
- WebPartConnectionCollection.cs
- ImageProxy.cs
- HeaderUtility.cs
- PropertyStore.cs
- TextSegment.cs
- RuleSettingsCollection.cs
- PagePropertiesChangingEventArgs.cs
- HandlerFactoryWrapper.cs
- FontCacheUtil.cs
- CheckableControlBaseAdapter.cs
- DataGridTextBox.cs
- TraceContextEventArgs.cs
- SynchronizationLockException.cs
- ControlCollection.cs
- UsernameTokenFactoryCredential.cs
- ByteStream.cs
- HtmlWindowCollection.cs
- DesignTimeTemplateParser.cs
- XmlUrlResolver.cs
- FormatPage.cs
- Journaling.cs
- InputGestureCollection.cs
- CultureTableRecord.cs
- EntityDataSourceDesigner.cs
- XPathException.cs
- EdmScalarPropertyAttribute.cs
- HttpCachePolicyElement.cs
- WebBrowsableAttribute.cs
- MsmqUri.cs
- ProcessInfo.cs
- VerificationException.cs
- DataGridViewRowConverter.cs
- ObjectMaterializedEventArgs.cs
- DbConvert.cs
- ServiceNameElement.cs
- PrePrepareMethodAttribute.cs
- StyleBamlTreeBuilder.cs
- XmlSchemaComplexType.cs
- InputScopeAttribute.cs
- Dictionary.cs
- Transform.cs
- NonVisualControlAttribute.cs
- PnrpPermission.cs
- ToolStripLabel.cs
- ContourSegment.cs
- DataGridState.cs
- storagemappingitemcollection.viewdictionary.cs
- ControlFilterExpression.cs
- StreamResourceInfo.cs
- PathFigure.cs
- TraceData.cs
- FileSystemEventArgs.cs
- XmlSchemaComplexContentRestriction.cs
- StatusCommandUI.cs
- WindowsListViewItemCheckBox.cs
- WebPartsPersonalization.cs
- LineServicesRun.cs
- EpmContentDeSerializerBase.cs
- Oid.cs
- DefaultHttpHandler.cs
- Encoding.cs
- ScaleTransform3D.cs
- MaskInputRejectedEventArgs.cs
- SerializationEventsCache.cs
- ServiceHandle.cs
- ParameterCollectionEditor.cs
- DataRecordInfo.cs