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
- XmlQueryOutput.cs
- BooleanToVisibilityConverter.cs
- ParameterCollection.cs
- HandlerBase.cs
- Listener.cs
- XmlSchemaInfo.cs
- ReverseComparer.cs
- KeyGesture.cs
- AppendHelper.cs
- DefaultTextStore.cs
- XmlValidatingReader.cs
- XPathSelectionIterator.cs
- CommandBindingCollection.cs
- CacheSection.cs
- ShapingEngine.cs
- LineUtil.cs
- DispatcherExceptionEventArgs.cs
- UnsafeNativeMethods.cs
- WindowsFormsHost.cs
- nulltextnavigator.cs
- Graph.cs
- WebPartVerbsEventArgs.cs
- GenericPrincipal.cs
- XPathNodeInfoAtom.cs
- RegexReplacement.cs
- PropagatorResult.cs
- ClientUrlResolverWrapper.cs
- Rect.cs
- DataKey.cs
- SplashScreen.cs
- PriorityRange.cs
- ServiceOperationInfoTypeConverter.cs
- ToolStripItem.cs
- WSSecurityPolicy11.cs
- ChannelManagerHelpers.cs
- UpdateManifestForBrowserApplication.cs
- Int32KeyFrameCollection.cs
- ProxyDataContractResolver.cs
- DetailsViewActionList.cs
- XmlBinaryWriterSession.cs
- RestClientProxyHandler.cs
- StringReader.cs
- HtmlInputButton.cs
- MemberAssignmentAnalysis.cs
- DefaultDiscoveryService.cs
- AsymmetricKeyExchangeDeformatter.cs
- FormConverter.cs
- ScriptControlDescriptor.cs
- MimePart.cs
- ScriptDescriptor.cs
- EventPrivateKey.cs
- ShaderRenderModeValidation.cs
- EncoderReplacementFallback.cs
- _StreamFramer.cs
- CqlLexer.cs
- DeobfuscatingStream.cs
- XmlCollation.cs
- ResourceReferenceKeyNotFoundException.cs
- NextPreviousPagerField.cs
- FileIOPermission.cs
- AccessDataSourceView.cs
- SessionPageStateSection.cs
- MarkupProperty.cs
- EventMappingSettings.cs
- Bits.cs
- ImmutableObjectAttribute.cs
- CFStream.cs
- FilterFactory.cs
- HMACRIPEMD160.cs
- HashStream.cs
- Size3DConverter.cs
- SecurityState.cs
- StorageRoot.cs
- ContainsRowNumberChecker.cs
- NativeMethods.cs
- sqlser.cs
- NonParentingControl.cs
- SmtpTransport.cs
- DataMemberAttribute.cs
- Helper.cs
- BuildProvidersCompiler.cs
- EFDataModelProvider.cs
- ConditionalAttribute.cs
- TransformConverter.cs
- ConfigXmlCDataSection.cs
- Byte.cs
- DoubleKeyFrameCollection.cs
- Visual3D.cs
- DataControlImageButton.cs
- ThicknessAnimationUsingKeyFrames.cs
- IndentedWriter.cs
- LocatorGroup.cs
- PropertyChangeTracker.cs
- Convert.cs
- odbcmetadatacollectionnames.cs
- CompilerInfo.cs
- StickyNoteContentControl.cs
- FragmentQueryProcessor.cs
- DataGridViewRow.cs
- FunctionQuery.cs