Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / UriTemplateEquivalenceComparer.cs / 2 / UriTemplateEquivalenceComparer.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- #pragma warning disable 1634, 1691 // Stops compiler from warning about unknown warnings (for Presharp) namespace System { using System.Collections.Generic; using System.ServiceModel; public class UriTemplateEquivalenceComparer : IEqualityComparer{ static UriTemplateEquivalenceComparer instance; internal static UriTemplateEquivalenceComparer Instance { get { if (instance == null) { // lock-free, fine if we allocate more than one instance = new UriTemplateEquivalenceComparer(); } return instance; } } public bool Equals(UriTemplate x, UriTemplate y) { if (x == null) { return y == null; } return x.IsEquivalentTo(y); } public int GetHashCode(UriTemplate obj) { if (obj == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("obj"); } #pragma warning disable 56506 // obj.xxx is never null // prefer final literal segment (common literal prefixes are common in some scenarios) for (int i = obj.segments.Count - 1; i >= 0; --i) { if (obj.segments[i].Nature == UriTemplatePartType.Literal) { return obj.segments[i].GetHashCode(); } } return obj.segments.Count + obj.queries.Count; #pragma warning restore 56506 } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BuilderPropertyEntry.cs
- RelationshipConverter.cs
- ObjectListItem.cs
- WebPartConnectionsDisconnectVerb.cs
- RadioButton.cs
- TabPanel.cs
- DataGridViewRowConverter.cs
- HtmlElementEventArgs.cs
- TreeNodeBinding.cs
- Size.cs
- Set.cs
- XPathAxisIterator.cs
- BrushValueSerializer.cs
- EventProxy.cs
- GridViewColumnCollection.cs
- UserPreferenceChangedEventArgs.cs
- SupportsEventValidationAttribute.cs
- Pair.cs
- DesignerActionTextItem.cs
- TdsParser.cs
- SubstitutionList.cs
- Binding.cs
- EntitySetBaseCollection.cs
- TypedTableBase.cs
- FrameworkPropertyMetadata.cs
- ProxyWebPartManager.cs
- DCSafeHandle.cs
- WebPartVerb.cs
- DrawingContextWalker.cs
- AffineTransform3D.cs
- DSASignatureFormatter.cs
- ScrollBar.cs
- ItemList.cs
- ActivityAction.cs
- XmlDownloadManager.cs
- BrowserDefinition.cs
- X509CertificateValidator.cs
- DesignTimeXamlWriter.cs
- ObjectPersistData.cs
- Parameter.cs
- StreamResourceInfo.cs
- RelatedView.cs
- DataGridViewTopRowAccessibleObject.cs
- RuleConditionDialog.cs
- Size.cs
- DynamicILGenerator.cs
- ProcessHostFactoryHelper.cs
- TagPrefixInfo.cs
- CngAlgorithm.cs
- Control.cs
- TabItemWrapperAutomationPeer.cs
- SmtpMail.cs
- WindowsBrush.cs
- HtmlImage.cs
- DataGridViewLinkCell.cs
- BuildProvider.cs
- StringAttributeCollection.cs
- DataObjectEventArgs.cs
- ControlPager.cs
- VisualStyleInformation.cs
- KeyValueConfigurationCollection.cs
- ChangeInterceptorAttribute.cs
- OdbcCommand.cs
- XmlSchemaAnnotation.cs
- HttpContextServiceHost.cs
- RightsManagementResourceHelper.cs
- MutexSecurity.cs
- ColumnWidthChangedEvent.cs
- XamlPathDataSerializer.cs
- AutomationProperties.cs
- SByte.cs
- SafeHandles.cs
- DataSourceControl.cs
- PixelShader.cs
- ComplusTypeValidator.cs
- RequestCacheManager.cs
- ListComponentEditorPage.cs
- ResourcePermissionBaseEntry.cs
- LoginUtil.cs
- HttpApplicationFactory.cs
- BinHexDecoder.cs
- ServerProtocol.cs
- SpellerHighlightLayer.cs
- BreakRecordTable.cs
- Page.cs
- RijndaelManaged.cs
- MessageTraceRecord.cs
- EmptyWithCancelationCheckWorkItem.cs
- XsltInput.cs
- TextBlockAutomationPeer.cs
- FrameDimension.cs
- URLIdentityPermission.cs
- PropertyCondition.cs
- ResourceDescriptionAttribute.cs
- ExclusiveTcpListener.cs
- ControlBuilderAttribute.cs
- SyndicationFeedFormatter.cs
- LoginUtil.cs
- Icon.cs
- Int16Storage.cs