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
- Pkcs7Signer.cs
- SectionRecord.cs
- NameValueCollection.cs
- NotSupportedException.cs
- UIElementParagraph.cs
- ErasingStroke.cs
- OlePropertyStructs.cs
- PerformanceCountersElement.cs
- TextRunProperties.cs
- CodeDomSerializerBase.cs
- DPTypeDescriptorContext.cs
- RefreshPropertiesAttribute.cs
- ClientTargetSection.cs
- VarRemapper.cs
- DropShadowBitmapEffect.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- AQNBuilder.cs
- RIPEMD160.cs
- FillErrorEventArgs.cs
- ItemsControl.cs
- FreezableDefaultValueFactory.cs
- RoleServiceManager.cs
- BitFlagsGenerator.cs
- _RequestCacheProtocol.cs
- BindingExpression.cs
- CFGGrammar.cs
- EndpointAddressMessageFilter.cs
- CommandEventArgs.cs
- StrokeCollection2.cs
- DataRowComparer.cs
- CheckBox.cs
- Int32CollectionValueSerializer.cs
- CellParaClient.cs
- ConstantProjectedSlot.cs
- XmlAttributeCache.cs
- TypeUtils.cs
- DataGridViewLinkColumn.cs
- DrawingAttributesDefaultValueFactory.cs
- XmlUrlResolver.cs
- StringSorter.cs
- SatelliteContractVersionAttribute.cs
- SweepDirectionValidation.cs
- Material.cs
- CustomSignedXml.cs
- CachedPathData.cs
- OpCodes.cs
- CodeExpressionRuleDeclaration.cs
- Roles.cs
- SortAction.cs
- Attributes.cs
- QueryContinueDragEvent.cs
- ServiceElement.cs
- TextServicesHost.cs
- X509CertificateStore.cs
- Section.cs
- ResourceReferenceExpressionConverter.cs
- SafeBitVector32.cs
- SizeAnimationBase.cs
- MatrixUtil.cs
- XmlChoiceIdentifierAttribute.cs
- DialogDivider.cs
- WorkerRequest.cs
- BamlResourceDeserializer.cs
- DesignerActionListCollection.cs
- ValidationHelper.cs
- CryptoConfig.cs
- ChannelCacheSettings.cs
- ObjectDataSourceStatusEventArgs.cs
- ButtonBaseAutomationPeer.cs
- CompiledQuery.cs
- HtmlInputImage.cs
- DbReferenceCollection.cs
- DocumentSchemaValidator.cs
- QilVisitor.cs
- CompilerTypeWithParams.cs
- LayoutTable.cs
- DesignerActionHeaderItem.cs
- Vector3DAnimationBase.cs
- AssemblyAssociatedContentFileAttribute.cs
- XsdDateTime.cs
- CharStorage.cs
- TypeLibConverter.cs
- FillRuleValidation.cs
- DecoderNLS.cs
- EntityDataSource.cs
- ThousandthOfEmRealDoubles.cs
- ProcessHost.cs
- ExpressionBuilderContext.cs
- FontWeights.cs
- CmsInterop.cs
- SyndicationElementExtensionCollection.cs
- XmlNode.cs
- DefaultTextStore.cs
- ContextStack.cs
- Int64Animation.cs
- Queue.cs
- ValidationRule.cs
- CodeSnippetCompileUnit.cs
- CursorConverter.cs
- SHA512Managed.cs