HashHelper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / HashHelper.cs / 1305600 / 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()
        {
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK