Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / XPath / XPathNavigatorKeyComparer.cs / 1 / 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
- IntranetCredentialPolicy.cs
- PageAdapter.cs
- SiteMapNode.cs
- DataGridViewColumnConverter.cs
- AnimationTimeline.cs
- ObjectDisposedException.cs
- Expression.cs
- GridToolTip.cs
- MSHTMLHost.cs
- CheckStoreFileValidityRequest.cs
- OdbcConnectionString.cs
- IdnMapping.cs
- WaitForChangedResult.cs
- DocumentEventArgs.cs
- Validator.cs
- DocComment.cs
- WizardSideBarListControlItemEventArgs.cs
- MouseGestureValueSerializer.cs
- IndexedGlyphRun.cs
- Rect3DConverter.cs
- SemaphoreFullException.cs
- TransportReplyChannelAcceptor.cs
- ExtensionCollection.cs
- XPathConvert.cs
- MessageDecoder.cs
- MemberInfoSerializationHolder.cs
- EasingKeyFrames.cs
- PathFigure.cs
- JsonUriDataContract.cs
- CompositionTarget.cs
- TextBoxBaseDesigner.cs
- MatrixTransform.cs
- PageHandlerFactory.cs
- WeakRefEnumerator.cs
- SystemIcons.cs
- ListBoxAutomationPeer.cs
- DataServiceQuery.cs
- AspNetRouteServiceHttpHandler.cs
- DependencyPropertyChangedEventArgs.cs
- DesignerTransactionCloseEvent.cs
- XmlCodeExporter.cs
- PaintEvent.cs
- ElementProxy.cs
- KeySplineConverter.cs
- StreamGeometryContext.cs
- PropertyPushdownHelper.cs
- ImpersonationContext.cs
- SqlXml.cs
- EventSourceCreationData.cs
- XmlMtomWriter.cs
- MailDefinition.cs
- UnknownWrapper.cs
- ExtensionQuery.cs
- DoubleAnimationUsingPath.cs
- GPPOINTF.cs
- DataViewManagerListItemTypeDescriptor.cs
- AlphaSortedEnumConverter.cs
- OracleCommandBuilder.cs
- InkPresenter.cs
- AnnotationComponentManager.cs
- bidPrivateBase.cs
- GeneralTransform3DCollection.cs
- PopupEventArgs.cs
- LeaseManager.cs
- SendDesigner.xaml.cs
- PropertyDescriptorGridEntry.cs
- EncoderParameters.cs
- IndexedWhereQueryOperator.cs
- Html32TextWriter.cs
- XmlChildEnumerator.cs
- EmptyWorkItem.cs
- TCPClient.cs
- PreservationFileWriter.cs
- WindowsBrush.cs
- ExtensionDataReader.cs
- LineServicesCallbacks.cs
- URL.cs
- LocatorPartList.cs
- NativeMethods.cs
- BackStopAuthenticationModule.cs
- SystemDiagnosticsSection.cs
- SynchronizedDispatch.cs
- EncodingTable.cs
- TimeSpanStorage.cs
- CustomBindingElement.cs
- SecurityContextTokenValidationException.cs
- columnmapfactory.cs
- JsonReader.cs
- CompModSwitches.cs
- HebrewCalendar.cs
- MultilineStringConverter.cs
- KeyValuePairs.cs
- ViewPort3D.cs
- hwndwrapper.cs
- RadioButtonAutomationPeer.cs
- EventRecord.cs
- ColumnCollection.cs
- SqlMethodTransformer.cs
- OutputScope.cs
- XamlRtfConverter.cs