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
- ActivityAction.cs
- XmlKeywords.cs
- AuthenticationService.cs
- RectangleF.cs
- HostExecutionContextManager.cs
- SecurityPermission.cs
- ClientSession.cs
- _DomainName.cs
- ImageCodecInfoPrivate.cs
- TextDecorationCollection.cs
- PeerInvitationResponse.cs
- SessionState.cs
- DrawListViewSubItemEventArgs.cs
- ModelItemImpl.cs
- JsonFormatWriterGenerator.cs
- OpenTypeCommon.cs
- XPathNodeIterator.cs
- ReferencedAssembly.cs
- PasswordPropertyTextAttribute.cs
- GlobalAllocSafeHandle.cs
- ProcessModuleDesigner.cs
- UrlAuthorizationModule.cs
- DataControlFieldCell.cs
- OutputScope.cs
- SectionInput.cs
- LinqDataSourceStatusEventArgs.cs
- ApplicationServicesHostFactory.cs
- BamlTreeUpdater.cs
- RoutedEventArgs.cs
- ToolStripSplitButton.cs
- Empty.cs
- Subtree.cs
- BaseDataList.cs
- HijriCalendar.cs
- SamlAuthenticationStatement.cs
- SystemColors.cs
- Clause.cs
- SettingsContext.cs
- LineInfo.cs
- FileLevelControlBuilderAttribute.cs
- PersonalizationState.cs
- XmlReflectionMember.cs
- TextAdaptor.cs
- SystemIPGlobalStatistics.cs
- EnglishPluralizationService.cs
- SrgsDocument.cs
- ChannelBase.cs
- WorkflowOperationAsyncResult.cs
- HtmlGenericControl.cs
- SimpleWorkerRequest.cs
- DataContractSet.cs
- BufferModesCollection.cs
- TripleDES.cs
- Function.cs
- XDeferredAxisSource.cs
- FileUtil.cs
- GPRECT.cs
- NominalTypeEliminator.cs
- LOSFormatter.cs
- CacheRequest.cs
- PanelDesigner.cs
- ObjectViewQueryResultData.cs
- HttpPostLocalhostServerProtocol.cs
- AttachedPropertyBrowsableAttribute.cs
- SqlBooleanMismatchVisitor.cs
- Int32Collection.cs
- ActiveXContainer.cs
- MenuItem.cs
- loginstatus.cs
- StringOutput.cs
- ExeContext.cs
- ClientFormsAuthenticationMembershipProvider.cs
- UnsafeNativeMethods.cs
- DesignerActionKeyboardBehavior.cs
- Bold.cs
- Label.cs
- SortedList.cs
- DBSchemaRow.cs
- ProcessProtocolHandler.cs
- ValidationHelper.cs
- nulltextcontainer.cs
- ContentValidator.cs
- StrongNamePublicKeyBlob.cs
- FrameworkElement.cs
- WindowsSysHeader.cs
- AsyncOperationManager.cs
- HttpListener.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SizeChangedEventArgs.cs
- OpenTypeCommon.cs
- CompositeCollectionView.cs
- PageCodeDomTreeGenerator.cs
- VScrollBar.cs
- ConsoleCancelEventArgs.cs
- StopStoryboard.cs
- WmpBitmapEncoder.cs
- RelationshipManager.cs
- ClientSettingsStore.cs
- UserPreference.cs
- CompleteWizardStep.cs