Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / XPathNavigatorKeyComparer.cs / 1305376 / XPathNavigatorKeyComparer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.IO; using System.Xml.Schema; using System.Collections; using System.Diagnostics; using MS.Internal.Xml.Cache; namespace System.Xml.XPath { internal class XPathNavigatorKeyComparer : IEqualityComparer { bool IEqualityComparer.Equals( Object obj1, Object obj2 ) { XPathNavigator nav1 = obj1 as XPathNavigator; XPathNavigator nav2 = obj2 as XPathNavigator; if( ( nav1 != null ) && ( nav2 != null ) ) { if( nav1.IsSamePosition( nav2 ) ) return true; } return false; } int IEqualityComparer.GetHashCode ( Object obj ) { int hashCode; XPathNavigator nav; XPathDocumentNavigator xpdocNav; if (obj == null) { throw new ArgumentNullException("obj"); } else if ( null != (xpdocNav = obj as XPathDocumentNavigator) ) { hashCode = xpdocNav.GetPositionHashCode(); } else if( null != (nav = obj as XPathNavigator) ) { Object underlyingObject = nav.UnderlyingObject; if (underlyingObject != null) { hashCode = underlyingObject.GetHashCode(); } else { hashCode = (int)nav.NodeType; hashCode ^= nav.LocalName.GetHashCode(); hashCode ^= nav.Prefix.GetHashCode(); hashCode ^= nav.NamespaceURI.GetHashCode(); } } else { hashCode = obj.GetHashCode(); } return hashCode; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.IO; using System.Xml.Schema; using System.Collections; using System.Diagnostics; using MS.Internal.Xml.Cache; namespace System.Xml.XPath { internal class XPathNavigatorKeyComparer : IEqualityComparer { bool IEqualityComparer.Equals( Object obj1, Object obj2 ) { XPathNavigator nav1 = obj1 as XPathNavigator; XPathNavigator nav2 = obj2 as XPathNavigator; if( ( nav1 != null ) && ( nav2 != null ) ) { if( nav1.IsSamePosition( nav2 ) ) return true; } return false; } int IEqualityComparer.GetHashCode ( Object obj ) { int hashCode; XPathNavigator nav; XPathDocumentNavigator xpdocNav; if (obj == null) { throw new ArgumentNullException("obj"); } else if ( null != (xpdocNav = obj as XPathDocumentNavigator) ) { hashCode = xpdocNav.GetPositionHashCode(); } else if( null != (nav = obj as XPathNavigator) ) { Object underlyingObject = nav.UnderlyingObject; if (underlyingObject != null) { hashCode = underlyingObject.GetHashCode(); } else { hashCode = (int)nav.NodeType; hashCode ^= nav.LocalName.GetHashCode(); hashCode ^= nav.Prefix.GetHashCode(); hashCode ^= nav.NamespaceURI.GetHashCode(); } } else { hashCode = obj.GetHashCode(); } return hashCode; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CommonGetThemePartSize.cs
- EnumValidator.cs
- Normalization.cs
- figurelength.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- XPathDocument.cs
- PropertyPathConverter.cs
- ResourceType.cs
- TextDecorationCollection.cs
- ConfigurationSettings.cs
- EventLogEntry.cs
- PanelStyle.cs
- DetailsViewPagerRow.cs
- WindowVisualStateTracker.cs
- CustomSignedXml.cs
- DecoderFallbackWithFailureFlag.cs
- XamlSerializer.cs
- WorkflowServiceBuildProvider.cs
- LinqDataSourceContextData.cs
- ToolStripArrowRenderEventArgs.cs
- PreviewPrintController.cs
- ListViewItem.cs
- ContractType.cs
- VirtualPathExtension.cs
- TextElementCollection.cs
- _NtlmClient.cs
- Exceptions.cs
- ServiceDebugBehavior.cs
- FileUtil.cs
- RawKeyboardInputReport.cs
- WebConfigurationHostFileChange.cs
- InternalMappingException.cs
- NativeCppClassAttribute.cs
- SafeNativeMethods.cs
- MetaData.cs
- ModulesEntry.cs
- ResourceAssociationTypeEnd.cs
- StructuredTypeInfo.cs
- TokenBasedSet.cs
- XmlTextAttribute.cs
- StrokeCollection.cs
- DbXmlEnabledProviderManifest.cs
- ComponentManagerBroker.cs
- AutomationElement.cs
- EntityContainerAssociationSet.cs
- PrivilegedConfigurationManager.cs
- PeerNearMe.cs
- sqlser.cs
- PenCursorManager.cs
- MachineKeyValidationConverter.cs
- Funcletizer.cs
- controlskin.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- SmtpFailedRecipientException.cs
- SoapExtensionReflector.cs
- DynamicActivityTypeDescriptor.cs
- HttpApplicationFactory.cs
- WindowsToolbar.cs
- XmlSchemaSimpleContent.cs
- StringAnimationBase.cs
- StreamInfo.cs
- Pen.cs
- KnownAssemblyEntry.cs
- CFStream.cs
- XmlSerializationReader.cs
- XmlElementCollection.cs
- ParameterModifier.cs
- WebPartMenuStyle.cs
- PersistenceTask.cs
- ConfigXmlSignificantWhitespace.cs
- ThreadPool.cs
- ExportOptions.cs
- Win32KeyboardDevice.cs
- CngProvider.cs
- Int16Animation.cs
- ExpandCollapseProviderWrapper.cs
- _WinHttpWebProxyDataBuilder.cs
- CellTreeNodeVisitors.cs
- SequentialUshortCollection.cs
- ModelVisual3D.cs
- SQLStringStorage.cs
- CreateUserWizard.cs
- GeneralTransform3D.cs
- XamlFigureLengthSerializer.cs
- DBCommand.cs
- WasAdminWrapper.cs
- OperationAbortedException.cs
- Cursors.cs
- FontNameConverter.cs
- TransformCryptoHandle.cs
- QuaternionConverter.cs
- NodeLabelEditEvent.cs
- BitmapEffectDrawingContextWalker.cs
- XsltOutput.cs
- DictionaryContent.cs
- ListViewItemSelectionChangedEvent.cs
- FlowLayout.cs
- SafeMILHandle.cs
- DesigntimeLicenseContext.cs
- _CommandStream.cs