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
- CodeGenerator.cs
- TreeIterator.cs
- IntegerValidatorAttribute.cs
- TransformedBitmap.cs
- XmlWhitespace.cs
- MemoryPressure.cs
- MsmqIntegrationChannelListener.cs
- HitTestWithPointDrawingContextWalker.cs
- PageContentCollection.cs
- OdbcReferenceCollection.cs
- WriteLineDesigner.xaml.cs
- XhtmlStyleClass.cs
- CommandLibraryHelper.cs
- ComponentEditorPage.cs
- ReaderWriterLockWrapper.cs
- ComplexTypeEmitter.cs
- PTConverter.cs
- EntityTypeEmitter.cs
- StringUtil.cs
- EntityModelBuildProvider.cs
- ToolStripComboBox.cs
- AnonymousIdentificationSection.cs
- BitVec.cs
- ErrorTableItemStyle.cs
- ToolboxItemImageConverter.cs
- OnOperation.cs
- CodeDomDecompiler.cs
- HandleCollector.cs
- BitmapDecoder.cs
- AccessedThroughPropertyAttribute.cs
- ClientTarget.cs
- SqlCommandBuilder.cs
- Type.cs
- __Filters.cs
- UpdateTranslator.cs
- RequestSecurityTokenResponse.cs
- Int64KeyFrameCollection.cs
- DataGridViewCheckBoxCell.cs
- OrderToken.cs
- _IPv6Address.cs
- ProfileModule.cs
- WindowsIPAddress.cs
- MenuAdapter.cs
- ListBase.cs
- StructuredTypeEmitter.cs
- Pens.cs
- ReturnValue.cs
- GcSettings.cs
- EventLogPermissionAttribute.cs
- CallbackCorrelationInitializer.cs
- WebPartEditorCancelVerb.cs
- NotFiniteNumberException.cs
- SharedPerformanceCounter.cs
- WebPartTracker.cs
- Bits.cs
- ReferenceService.cs
- WindowsGrip.cs
- TextEditorCharacters.cs
- XmlQualifiedNameTest.cs
- RsaSecurityKey.cs
- Hash.cs
- Page.cs
- TextWriterEngine.cs
- MediaContextNotificationWindow.cs
- AtomContentProperty.cs
- Debug.cs
- ToolStripDropDownButton.cs
- ToolStripRenderer.cs
- EntityCommand.cs
- AdornerDecorator.cs
- SimpleNameService.cs
- BufferedGraphics.cs
- SudsWriter.cs
- VectorCollectionConverter.cs
- MustUnderstandBehavior.cs
- JournalEntry.cs
- XmlNavigatorFilter.cs
- ComponentChangingEvent.cs
- SQLMoney.cs
- IISUnsafeMethods.cs
- PeerContact.cs
- Int32CollectionConverter.cs
- ToolStripSeparator.cs
- Utils.cs
- RegexWorker.cs
- ImageButton.cs
- Int64AnimationBase.cs
- XsdCachingReader.cs
- VariableAction.cs
- ProgressBar.cs
- TextEncodedRawTextWriter.cs
- ViewPort3D.cs
- Transform3DGroup.cs
- DetailsViewPagerRow.cs
- _SSPISessionCache.cs
- Normalization.cs
- CodeMethodReturnStatement.cs
- BitmapMetadataBlob.cs
- TableCell.cs
- RecognitionEventArgs.cs