Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / ResolveCriteria.cs / 1305376 / ResolveCriteria.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System; using System.Collections.ObjectModel; using System.Runtime; using System.Xml; using System.Xml.Linq; using System.Xml.Schema; using SR2 = System.ServiceModel.Discovery.SR; [Fx.Tag.XamlVisible(false)] public class ResolveCriteria { static TimeSpan defaultDuration = TimeSpan.FromSeconds(20); EndpointAddress endpointAddress; TimeSpan duration; NonNullItemCollectionextensions; public ResolveCriteria() : this(new EndpointAddress(EndpointAddress.AnonymousUri)) { } public ResolveCriteria(EndpointAddress address) { if (address == null) { throw FxTrace.Exception.ArgumentNull("address"); } this.endpointAddress = address; this.duration = ResolveCriteria.defaultDuration; } public EndpointAddress Address { get { return this.endpointAddress; } set { if (value == null) { throw FxTrace.Exception.ArgumentNull("value"); } this.endpointAddress = value; } } public TimeSpan Duration { get { return this.duration; } set { if (value.CompareTo(TimeSpan.Zero) <= 0) { throw FxTrace.Exception.ArgumentOutOfRange("value", value, SR2.DiscoveryResolveDurationLessThanZero); } this.duration = value; } } public Collection Extensions { get { if (this.extensions == null) { this.extensions = new NonNullItemCollection (); } return this.extensions; } } [Fx.Tag.Throws(typeof(XmlException), "throws on incorrect xml data")] internal void ReadFrom(DiscoveryVersion discoveryVersion, XmlReader reader) { if (discoveryVersion == null) { throw FxTrace.Exception.ArgumentNull("discoveryVersion"); } if (reader == null) { throw FxTrace.Exception.ArgumentNull("reader"); } reader.MoveToContent(); if (reader.IsEmptyElement) { reader.Read(); return; } int startDepth = reader.Depth; reader.ReadStartElement(); this.endpointAddress = SerializationUtility.ReadEndpointAddress(discoveryVersion, reader); this.extensions = null; this.duration = TimeSpan.MaxValue; while (true) { reader.MoveToContent(); if ((reader.NodeType == XmlNodeType.EndElement) && (reader.Depth == startDepth)) { break; } else if (reader.IsStartElement(ProtocolStrings.SchemaNames.DurationElement, ProtocolStrings.VersionInternal.Namespace)) { this.duration = SerializationUtility.ReadDuration(reader); } else if (reader.IsStartElement()) { XElement xElement = XElement.ReadFrom(reader) as XElement; Extensions.Add(xElement); } else { reader.Read(); } } } internal void WriteTo(DiscoveryVersion discoveryVersion, XmlWriter writer) { if (discoveryVersion == null) { throw FxTrace.Exception.ArgumentNull("discoveryVersion"); } if (writer == null) { throw FxTrace.Exception.ArgumentNull("writer"); } SerializationUtility.WriteEndPointAddress(discoveryVersion, this.endpointAddress, writer); if (this.duration != TimeSpan.MaxValue) { writer.WriteElementString( ProtocolStrings.SchemaNames.DurationElement, ProtocolStrings.VersionInternal.Namespace, XmlConvert.ToString(this.duration)); } if (this.extensions != null) { foreach (XElement xElement in Extensions) { xElement.WriteTo(writer); } } } } } // 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
- DiscoveryClientOutputChannel.cs
- Span.cs
- CommandField.cs
- Range.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- FixedSOMSemanticBox.cs
- DataGridLength.cs
- ProgressChangedEventArgs.cs
- DispatchChannelSink.cs
- SequentialUshortCollection.cs
- Utils.cs
- GridViewColumn.cs
- TextChange.cs
- XPathAxisIterator.cs
- GenericEnumConverter.cs
- VerticalAlignConverter.cs
- StyleXamlTreeBuilder.cs
- DomNameTable.cs
- DocumentSequenceHighlightLayer.cs
- RadioButtonRenderer.cs
- QilInvokeLateBound.cs
- ObjectListItemCollection.cs
- Root.cs
- CodeAttributeArgument.cs
- ObjectQuery.cs
- OdbcConnectionPoolProviderInfo.cs
- OptimalTextSource.cs
- RijndaelManaged.cs
- DeviceContext2.cs
- PreviewControlDesigner.cs
- TextShapeableCharacters.cs
- KeysConverter.cs
- RowToParametersTransformer.cs
- TreeView.cs
- SystemTcpStatistics.cs
- BuildDependencySet.cs
- MarkerProperties.cs
- NTAccount.cs
- ParsedAttributeCollection.cs
- Encoder.cs
- Thread.cs
- ObjectDataProvider.cs
- GenerateScriptTypeAttribute.cs
- ZipIOCentralDirectoryBlock.cs
- XamlReaderHelper.cs
- EventLogPermissionHolder.cs
- ResourcePool.cs
- TraceLevelStore.cs
- CodeSubDirectoriesCollection.cs
- _Win32.cs
- TripleDESCryptoServiceProvider.cs
- MemoryStream.cs
- ControlPersister.cs
- columnmapkeybuilder.cs
- TimeZoneInfo.cs
- DesignerForm.cs
- DecoderBestFitFallback.cs
- ThreadSafeList.cs
- ListBox.cs
- TemplatePropertyEntry.cs
- MSG.cs
- MenuStrip.cs
- RequiredFieldValidator.cs
- DataGridViewSelectedRowCollection.cs
- Screen.cs
- CachedTypeface.cs
- WSHttpBindingBase.cs
- XLinq.cs
- ChannelToken.cs
- DataGridAddNewRow.cs
- LambdaCompiler.Generated.cs
- CancelEventArgs.cs
- XmlMessageFormatter.cs
- DispatchWrapper.cs
- CapabilitiesSection.cs
- Point3D.cs
- MDIControlStrip.cs
- AuthenticateEventArgs.cs
- UserPersonalizationStateInfo.cs
- CallbackDebugElement.cs
- HttpProfileBase.cs
- Merger.cs
- WindowsListBox.cs
- NamespaceMapping.cs
- Events.cs
- ArraySortHelper.cs
- SecurityRuntime.cs
- UIHelper.cs
- XmlCollation.cs
- DeclaredTypeValidator.cs
- XmlUtil.cs
- SecurityUtils.cs
- WebBrowserEvent.cs
- ProfilePropertyMetadata.cs
- TableLayoutColumnStyleCollection.cs
- DateTimeFormatInfoScanner.cs
- QueryTaskGroupState.cs
- ProviderSettings.cs
- SortKey.cs
- BroadcastEventHelper.cs