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
- DataGridViewImageColumn.cs
- NumberEdit.cs
- TextView.cs
- PrePrepareMethodAttribute.cs
- QuotaThrottle.cs
- XmlnsCache.cs
- TextRangeAdaptor.cs
- ConvertTextFrag.cs
- UmAlQuraCalendar.cs
- PKCS1MaskGenerationMethod.cs
- dataSvcMapFileLoader.cs
- ItemCollection.cs
- ParallelTimeline.cs
- FontUnitConverter.cs
- RunClient.cs
- TypedTableBaseExtensions.cs
- ConnectionStringSettingsCollection.cs
- ObjectAnimationBase.cs
- DBPropSet.cs
- DeclarativeCatalogPart.cs
- _StreamFramer.cs
- XmlCustomFormatter.cs
- ExtendedProperty.cs
- StylusCaptureWithinProperty.cs
- NotEqual.cs
- XmlParserContext.cs
- latinshape.cs
- RightsManagementEncryptionTransform.cs
- ScrollBar.cs
- ObjectDataSourceView.cs
- EncodingInfo.cs
- ListViewSelectEventArgs.cs
- DataTableTypeConverter.cs
- FacetValueContainer.cs
- XslAstAnalyzer.cs
- DateTimeUtil.cs
- ReceiveParametersContent.cs
- HtmlPhoneCallAdapter.cs
- safex509handles.cs
- ClientTargetSection.cs
- ExpressionBuilder.cs
- CustomAttribute.cs
- VideoDrawing.cs
- ZoomPercentageConverter.cs
- DataView.cs
- ErrorTableItemStyle.cs
- LogicalExpressionTypeConverter.cs
- MessageQueueException.cs
- _ProxyChain.cs
- Label.cs
- PasswordBoxAutomationPeer.cs
- BrowserCapabilitiesFactory.cs
- Double.cs
- BlockUIContainer.cs
- ToolboxItemAttribute.cs
- XpsResource.cs
- BaseServiceProvider.cs
- WebPartExportVerb.cs
- WaitHandle.cs
- WriteTimeStream.cs
- SecurityHeader.cs
- FormsAuthenticationTicket.cs
- HtmlInputReset.cs
- BinaryObjectReader.cs
- CreateUserWizardStep.cs
- GridViewRowCollection.cs
- ListViewContainer.cs
- EndpointAddress10.cs
- XmlMemberMapping.cs
- IndexerReference.cs
- RegexGroupCollection.cs
- MaskDescriptors.cs
- Style.cs
- XmlSchemaValidator.cs
- ConfigurationStrings.cs
- XmlSchemas.cs
- BasicKeyConstraint.cs
- FileFormatException.cs
- XmlSchemaInfo.cs
- MD5HashHelper.cs
- DataAdapter.cs
- DoubleCollectionValueSerializer.cs
- FilterEventArgs.cs
- ConfigXmlDocument.cs
- UnaryOperationBinder.cs
- ReceiveActivityDesigner.cs
- BuilderPropertyEntry.cs
- dataSvcMapFileLoader.cs
- COM2AboutBoxPropertyDescriptor.cs
- QueryConverter.cs
- CqlBlock.cs
- UnsafeNativeMethods.cs
- SplitterCancelEvent.cs
- ManipulationDevice.cs
- formatter.cs
- FillErrorEventArgs.cs
- autovalidator.cs
- UserInitiatedNavigationPermission.cs
- TextTreeInsertElementUndoUnit.cs
- XmlDocumentViewSchema.cs