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
- ImageUrlEditor.cs
- AudioDeviceOut.cs
- ContainsSearchOperator.cs
- SoapElementAttribute.cs
- FacetEnabledSchemaElement.cs
- FileDialog.cs
- ColorContext.cs
- WebSysDescriptionAttribute.cs
- StyleHelper.cs
- ProgressPage.cs
- SafeHandles.cs
- ActivityCodeDomSerializationManager.cs
- OleDbReferenceCollection.cs
- StickyNoteContentControl.cs
- DesignerOptionService.cs
- Visual3D.cs
- EqualityComparer.cs
- EntityContainer.cs
- NetworkCredential.cs
- SimplePropertyEntry.cs
- InfoCardKeyedHashAlgorithm.cs
- SiteOfOriginContainer.cs
- CodeIdentifiers.cs
- MembershipValidatePasswordEventArgs.cs
- ComPlusSynchronizationContext.cs
- WorkflowMarkupSerializer.cs
- BaseParaClient.cs
- BinHexDecoder.cs
- MessageBodyMemberAttribute.cs
- PixelShader.cs
- LinqMaximalSubtreeNominator.cs
- XPathBinder.cs
- ArrayWithOffset.cs
- AccessedThroughPropertyAttribute.cs
- DataListGeneralPage.cs
- CompilerErrorCollection.cs
- HttpException.cs
- DataSourceDescriptorCollection.cs
- PerformanceCounter.cs
- GeneralTransform.cs
- DbDataRecord.cs
- BasePattern.cs
- DataGridViewCellStateChangedEventArgs.cs
- FtpRequestCacheValidator.cs
- NestedContainer.cs
- EtwTrace.cs
- InputProcessorProfilesLoader.cs
- OracleParameterCollection.cs
- EventMappingSettings.cs
- CfgParser.cs
- HwndHostAutomationPeer.cs
- TransportManager.cs
- Parser.cs
- DomainUpDown.cs
- XmlUrlEditor.cs
- TransformerConfigurationWizardBase.cs
- CodeTypeDelegate.cs
- documentation.cs
- AlternateView.cs
- DEREncoding.cs
- GeometryCombineModeValidation.cs
- GetPageNumberCompletedEventArgs.cs
- ControlBuilderAttribute.cs
- OperationContractGenerationContext.cs
- RepeaterDesigner.cs
- NameNode.cs
- HtmlLink.cs
- RegexFCD.cs
- ValueType.cs
- XamlFigureLengthSerializer.cs
- SocketSettings.cs
- ViewKeyConstraint.cs
- XmlNodeComparer.cs
- Zone.cs
- ArcSegment.cs
- TypeLoader.cs
- AnnotationHighlightLayer.cs
- XmlArrayAttribute.cs
- LinkTarget.cs
- ComponentChangedEvent.cs
- SymmetricAlgorithm.cs
- DataRowView.cs
- WebPartDisplayMode.cs
- CompilerWrapper.cs
- ConfigurationSettings.cs
- ErrorFormatterPage.cs
- WindowShowOrOpenTracker.cs
- RestClientProxyHandler.cs
- SizeAnimationUsingKeyFrames.cs
- RegexCode.cs
- WindowsListViewGroupHelper.cs
- SqlFactory.cs
- ASCIIEncoding.cs
- XamlParser.cs
- SoapIgnoreAttribute.cs
- HtmlControlPersistable.cs
- ClientRoleProvider.cs
- SqlMethodAttribute.cs
- CaseCqlBlock.cs
- Delegate.cs