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
- RichTextBox.cs
- SqlTypeConverter.cs
- SharedPerformanceCounter.cs
- ControlType.cs
- DataTableTypeConverter.cs
- AssemblyInfo.cs
- SByteConverter.cs
- StorageModelBuildProvider.cs
- CompositeCollectionView.cs
- SetterTriggerConditionValueConverter.cs
- CapabilitiesSection.cs
- OleDbRowUpdatedEvent.cs
- NamespaceImport.cs
- SqlUtil.cs
- GlyphingCache.cs
- ProfileBuildProvider.cs
- FillRuleValidation.cs
- TypeDependencyAttribute.cs
- CollectionDataContract.cs
- SendReply.cs
- MissingSatelliteAssemblyException.cs
- TextEffect.cs
- Keywords.cs
- ItemsPanelTemplate.cs
- WebPartEditorOkVerb.cs
- MarkedHighlightComponent.cs
- AppDomain.cs
- WinCategoryAttribute.cs
- ReferenceEqualityComparer.cs
- PasswordBoxAutomationPeer.cs
- TimeManager.cs
- QilScopedVisitor.cs
- SamlAction.cs
- WebUtil.cs
- InternalMappingException.cs
- ParallelTimeline.cs
- PackageDigitalSignatureManager.cs
- DataServiceRequestArgs.cs
- IsolatedStoragePermission.cs
- RepeaterItemEventArgs.cs
- GeneralTransform3DGroup.cs
- OdbcFactory.cs
- WindowsPrincipal.cs
- UserPreferenceChangedEventArgs.cs
- Roles.cs
- IndexOutOfRangeException.cs
- CustomError.cs
- CatalogZone.cs
- UpdatePanel.cs
- LassoHelper.cs
- ControlCollection.cs
- TextServicesCompartment.cs
- NaturalLanguageHyphenator.cs
- DataGridState.cs
- SecUtil.cs
- WriterOutput.cs
- StubHelpers.cs
- EUCJPEncoding.cs
- TypeGeneratedEventArgs.cs
- UrlAuthFailedErrorFormatter.cs
- CollectionConverter.cs
- SqlProviderManifest.cs
- Knowncolors.cs
- WebConfigurationFileMap.cs
- Vector3DAnimationBase.cs
- DataContractSet.cs
- SmiEventSink.cs
- CalendarTable.cs
- GCHandleCookieTable.cs
- _FtpControlStream.cs
- DataGridViewImageCell.cs
- EncoderParameter.cs
- ColumnMapProcessor.cs
- VisualStyleInformation.cs
- DeflateStream.cs
- SecurityHelper.cs
- GroupLabel.cs
- Span.cs
- FtpWebResponse.cs
- CodeIterationStatement.cs
- TrackingProfileSerializer.cs
- SoapException.cs
- DataKey.cs
- CommonXSendMessage.cs
- SqlUtil.cs
- HtmlControl.cs
- DataBindingExpressionBuilder.cs
- DataServiceContext.cs
- DesignerForm.cs
- EventMappingSettingsCollection.cs
- XmlTextReaderImplHelpers.cs
- ConfigurationSectionGroup.cs
- WebResourceAttribute.cs
- PropertySourceInfo.cs
- FixedTextView.cs
- DelayedRegex.cs
- BitmapCache.cs
- DataGridViewIntLinkedList.cs
- RequestQueue.cs
- TargetConverter.cs