Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- CursorConverter.cs
- SafeFileHandle.cs
- CompoundFileStreamReference.cs
- ObsoleteAttribute.cs
- FilePresentation.cs
- TypeToArgumentTypeConverter.cs
- InheritedPropertyChangedEventArgs.cs
- SlipBehavior.cs
- ContentDisposition.cs
- SqlTypeConverter.cs
- InstanceOwnerQueryResult.cs
- TreeWalker.cs
- RecognizedAudio.cs
- GridViewSelectEventArgs.cs
- HyperLinkStyle.cs
- CrossSiteScriptingValidation.cs
- PassportAuthenticationEventArgs.cs
- MD5.cs
- ToggleButton.cs
- BooleanKeyFrameCollection.cs
- SessionStateItemCollection.cs
- ThemeableAttribute.cs
- RoutedEventConverter.cs
- MulticastNotSupportedException.cs
- WebPartExportVerb.cs
- ToolStripComboBox.cs
- panel.cs
- WorkflowHostingResponseContext.cs
- wgx_commands.cs
- LayoutEditorPart.cs
- DelegateBodyWriter.cs
- PingOptions.cs
- TextDecoration.cs
- SoapAttributeAttribute.cs
- TypedMessageConverter.cs
- DataGridViewSortCompareEventArgs.cs
- RegionData.cs
- MessagePropertyDescription.cs
- BitmapVisualManager.cs
- CLSCompliantAttribute.cs
- WindowsIdentity.cs
- PropertyMetadata.cs
- CrossSiteScriptingValidation.cs
- CardSpaceSelector.cs
- AssemblyName.cs
- ToolStripPanelRow.cs
- TreeBuilderXamlTranslator.cs
- QilStrConcat.cs
- HttpCacheVaryByContentEncodings.cs
- TextBreakpoint.cs
- ParsedRoute.cs
- SystemKeyConverter.cs
- CatalogZoneBase.cs
- HandledMouseEvent.cs
- ActivationWorker.cs
- FrameSecurityDescriptor.cs
- ListMarkerLine.cs
- OdbcEnvironmentHandle.cs
- DefaultEvaluationContext.cs
- DataRowCollection.cs
- MimeTextImporter.cs
- InputLangChangeRequestEvent.cs
- PageThemeParser.cs
- _KerberosClient.cs
- ProfileParameter.cs
- ClientConfigPaths.cs
- SessionIDManager.cs
- ModulesEntry.cs
- DataGridViewRowEventArgs.cs
- RangeBase.cs
- SSmlParser.cs
- TrackBarRenderer.cs
- DbProviderFactoriesConfigurationHandler.cs
- ProcessModelSection.cs
- ConnectionPoint.cs
- ProviderUtil.cs
- SelectionItemPatternIdentifiers.cs
- PropertyChangedEventArgs.cs
- SimpleBitVector32.cs
- GlyphElement.cs
- Statements.cs
- Line.cs
- UnionCodeGroup.cs
- DesignerAdapterUtil.cs
- CrossAppDomainChannel.cs
- RectKeyFrameCollection.cs
- IteratorAsyncResult.cs
- NativeRightsManagementAPIsStructures.cs
- GradientBrush.cs
- DecimalAnimation.cs
- Exceptions.cs
- Typeface.cs
- GridItemCollection.cs
- EventItfInfo.cs
- GenericPrincipal.cs
- TextElement.cs
- LayoutInformation.cs
- CodeStatementCollection.cs
- CodeCastExpression.cs
- EntryIndex.cs