Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / DiscoveryMessageSequence.cs / 1305376 / DiscoveryMessageSequence.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Runtime; using System.Xml; using SR2 = System.ServiceModel.Discovery.SR; [Fx.Tag.XamlVisible(false)] [SuppressMessage("Microsoft.Design", "CA1036:OverrideMethodsOnComparableTypes")] public class DiscoveryMessageSequence : IComparable, IEquatable { internal DiscoveryMessageSequence() { } internal DiscoveryMessageSequence(long instanceId, Uri sequenceId, long messageNumber) { Fx.Assert((instanceId >= 0) && (instanceId <= UInt32.MaxValue), "The instanceId must be within UInt32 range"); Fx.Assert((messageNumber >= 0) && (messageNumber <= UInt32.MaxValue), "The messageNumber must be within UInt32 range"); this.InstanceId = instanceId; this.SequenceId = sequenceId; this.MessageNumber = messageNumber; } public long InstanceId { get; private set; } public Uri SequenceId { get; private set; } public long MessageNumber { get; private set; } public static bool operator ==(DiscoveryMessageSequence messageSequence1, DiscoveryMessageSequence messageSequence2) { if (object.ReferenceEquals(messageSequence1, null) && object.ReferenceEquals(messageSequence2, null)) { return true; } if (object.ReferenceEquals(messageSequence1, null) || object.ReferenceEquals(messageSequence2, null)) { return false; } return messageSequence1.Equals(messageSequence2); } public static bool operator !=(DiscoveryMessageSequence messageSequence1, DiscoveryMessageSequence messageSequence2) { return !(messageSequence1 == messageSequence2); } public override bool Equals(object obj) { DiscoveryMessageSequence other = obj as DiscoveryMessageSequence; return this.Equals(other); } public bool Equals(DiscoveryMessageSequence other) { if (object.ReferenceEquals(other, null)) { return false; } if (object.ReferenceEquals(this, other)) { return true; } return (long.Equals(this.InstanceId, other.InstanceId) && Uri.Equals(this.SequenceId, other.SequenceId) && long.Equals(this.MessageNumber, other.MessageNumber)); } public override string ToString() { return SR.DiscoveryMessageSequenceToString(this.InstanceId, this.SequenceId, this.MessageNumber); } public bool CanCompareTo(DiscoveryMessageSequence other) { if (object.ReferenceEquals(other, null)) { return false; } else { return ((this.InstanceId != other.InstanceId) || (Uri.Equals(this.SequenceId, other.SequenceId))); } } public override int GetHashCode() { return string.Format( CultureInfo.InvariantCulture, "{0}:{1}:{2}", this.InstanceId, this.SequenceId, this.MessageNumber).GetHashCode(); } public int CompareTo(DiscoveryMessageSequence other) { if (object.ReferenceEquals(other, null)) { throw FxTrace.Exception.ArgumentNull("other"); } int result = this.InstanceId.CompareTo(other.InstanceId); if (result == 0) { if (!Uri.Equals(this.SequenceId, other.SequenceId)) { throw FxTrace.Exception.Argument("other", SR2.DiscoveryIncompatibleMessageSequence); } result = this.MessageNumber.CompareTo(other.MessageNumber); } return result; } [Fx.Tag.Throws(typeof(XmlException), "throws on incorrect xml data")] internal void ReadFrom(XmlReader reader) { if (reader == null) { throw FxTrace.Exception.ArgumentNull("reader"); } string instanceIdString = reader.GetAttribute(ProtocolStrings.SchemaNames.AppSequenceInstanceId); this.InstanceId = SerializationUtility.ReadUInt( instanceIdString, SR2.DiscoveryXmlMissingAppSequenceInstanceId, SR2.DiscoveryXmlInvalidAppSequenceInstanceId); string sequenceIdString = reader.GetAttribute(ProtocolStrings.SchemaNames.AppSequenceSequenceId); if (sequenceIdString != null) { try { this.SequenceId = new Uri(sequenceIdString, UriKind.RelativeOrAbsolute); } catch (FormatException fe) { throw FxTrace.Exception.AsError(new XmlException(SR2.DiscoveryXmlUriFormatError(sequenceIdString), fe)); } } string messageNumberString = reader.GetAttribute(ProtocolStrings.SchemaNames.AppSequenceMessageNumber); this.MessageNumber = SerializationUtility.ReadUInt( messageNumberString, SR2.DiscoveryXmlMissingAppSequenceMessageNumber, SR2.DiscoveryXmlInvalidAppSequenceMessageNumber); } internal void WriteTo(XmlWriter writer) { if (writer == null) { throw FxTrace.Exception.ArgumentNull("writer"); } writer.WriteAttributeString( ProtocolStrings.SchemaNames.AppSequenceInstanceId, this.InstanceId.ToString(CultureInfo.InvariantCulture)); if (this.SequenceId != null) { writer.WriteAttributeString( ProtocolStrings.SchemaNames.AppSequenceSequenceId, this.SequenceId.GetComponents(UriComponents.SerializationInfoString, UriFormat.UriEscaped)); } writer.WriteAttributeString( ProtocolStrings.SchemaNames.AppSequenceMessageNumber, this.MessageNumber.ToString(CultureInfo.InvariantCulture)); } } } // 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
- Message.cs
- Matrix.cs
- MethodExpr.cs
- CacheRequest.cs
- User.cs
- HttpRequestTraceRecord.cs
- ValueQuery.cs
- IIS7UserPrincipal.cs
- SqlRowUpdatedEvent.cs
- DataIdProcessor.cs
- SafeHGlobalHandleCritical.cs
- HtmlElementEventArgs.cs
- DrawToolTipEventArgs.cs
- ManagedFilter.cs
- ServiceOperationDetailViewControl.cs
- WebEvents.cs
- Tile.cs
- DataColumnPropertyDescriptor.cs
- AuthenticationServiceManager.cs
- SettingsPropertyNotFoundException.cs
- ThicknessAnimationBase.cs
- RepeatButtonAutomationPeer.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- BaseEntityWrapper.cs
- RelationshipSet.cs
- RuntimeComponentFilter.cs
- IdentityNotMappedException.cs
- CombinedGeometry.cs
- TraceContext.cs
- isolationinterop.cs
- HttpApplicationStateWrapper.cs
- GridItemPattern.cs
- ServiceCredentials.cs
- WebPartZoneBase.cs
- CodeCatchClauseCollection.cs
- MultipartIdentifier.cs
- InternalEnumValidator.cs
- ThreadAbortException.cs
- DataError.cs
- EntityPropertyMappingAttribute.cs
- SystemKeyConverter.cs
- XmlAttributeAttribute.cs
- FixUp.cs
- XPathNavigatorKeyComparer.cs
- SqlFunctionAttribute.cs
- FixedBufferAttribute.cs
- GeometryGroup.cs
- BitSet.cs
- RawUIStateInputReport.cs
- PropertyGroupDescription.cs
- CqlParser.cs
- IPAddress.cs
- WmpBitmapDecoder.cs
- Rotation3D.cs
- EditingContext.cs
- CqlErrorHelper.cs
- DataGridViewCellConverter.cs
- AssociatedControlConverter.cs
- StrokeCollection2.cs
- XomlSerializationHelpers.cs
- XsltException.cs
- PaperSize.cs
- ImplicitInputBrush.cs
- GlyphShapingProperties.cs
- BackoffTimeoutHelper.cs
- NetMsmqSecurityMode.cs
- EventDescriptorCollection.cs
- isolationinterop.cs
- TextCharacters.cs
- DistributedTransactionPermission.cs
- StrongNameMembershipCondition.cs
- EdmItemCollection.cs
- SkinBuilder.cs
- XmlHelper.cs
- DataControlButton.cs
- ConsoleTraceListener.cs
- KoreanCalendar.cs
- SystemUdpStatistics.cs
- NamespaceEmitter.cs
- SQLChars.cs
- DebugView.cs
- SocketPermission.cs
- GridSplitterAutomationPeer.cs
- AppModelKnownContentFactory.cs
- DataGridViewCellMouseEventArgs.cs
- HwndTarget.cs
- filewebresponse.cs
- WebSysDefaultValueAttribute.cs
- WebPartZoneBase.cs
- ContainerParagraph.cs
- DesignerActionPropertyItem.cs
- TrackingParticipant.cs
- SmtpNtlmAuthenticationModule.cs
- ResolveMatchesMessageCD1.cs
- ConfigXmlDocument.cs
- ControlEvent.cs
- NativeMethods.cs
- IntegerFacetDescriptionElement.cs
- CodeAccessSecurityEngine.cs
- LayoutExceptionEventArgs.cs