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
- ConnectionManagementElementCollection.cs
- TranslateTransform.cs
- ServiceMetadataContractBehavior.cs
- ConfigXmlSignificantWhitespace.cs
- ByteStack.cs
- MSAAWinEventWrap.cs
- AttributeUsageAttribute.cs
- ProtectedConfigurationSection.cs
- XmlParserContext.cs
- QilScopedVisitor.cs
- BitmapDownload.cs
- WindowsTooltip.cs
- WrapPanel.cs
- ResourceType.cs
- BaseValidatorDesigner.cs
- ConnectionProviderAttribute.cs
- DetailsViewInsertedEventArgs.cs
- BaseTreeIterator.cs
- EventDescriptorCollection.cs
- RectangleGeometry.cs
- DragDeltaEventArgs.cs
- SinglePageViewer.cs
- FrameworkElementFactory.cs
- HandlerFactoryCache.cs
- SecurityTimestamp.cs
- ByteConverter.cs
- Int32RectValueSerializer.cs
- xamlnodes.cs
- SiteMapDataSourceView.cs
- RemotingSurrogateSelector.cs
- AssemblyFilter.cs
- ToolStripItemImageRenderEventArgs.cs
- ReferenceSchema.cs
- FullTrustAssemblyCollection.cs
- XsdDuration.cs
- XamlToRtfParser.cs
- WebProxyScriptElement.cs
- FileDialogCustomPlacesCollection.cs
- RawStylusInputReport.cs
- RowVisual.cs
- DataGridViewCheckBoxCell.cs
- OracleRowUpdatedEventArgs.cs
- TreeNodeCollection.cs
- ResourceAttributes.cs
- DrawItemEvent.cs
- ManifestResourceInfo.cs
- Debugger.cs
- WSHttpBindingCollectionElement.cs
- DropDownList.cs
- SQLInt64Storage.cs
- QilName.cs
- SoapRpcServiceAttribute.cs
- SystemIPAddressInformation.cs
- SystemKeyConverter.cs
- COSERVERINFO.cs
- MimeFormatExtensions.cs
- PagesSection.cs
- recordstatescratchpad.cs
- TextTreeExtractElementUndoUnit.cs
- TimelineGroup.cs
- ErrorWrapper.cs
- RTLAwareMessageBox.cs
- DbProviderFactories.cs
- DataSourceGeneratorException.cs
- DbParameterCollection.cs
- SizeAnimationUsingKeyFrames.cs
- RotateTransform3D.cs
- SafeNativeMethods.cs
- DataGridViewAccessibleObject.cs
- PreDigestedSignedInfo.cs
- PassportPrincipal.cs
- DriveInfo.cs
- UnsafeNativeMethods.cs
- TableProviderWrapper.cs
- TouchPoint.cs
- ObjectTag.cs
- Peer.cs
- ConfigXmlWhitespace.cs
- WebPartConnectionCollection.cs
- ReflectionHelper.cs
- DBSqlParserColumn.cs
- WebSysDisplayNameAttribute.cs
- ComponentEditorPage.cs
- DefaultValueConverter.cs
- designeractionlistschangedeventargs.cs
- Evidence.cs
- ScriptManagerProxy.cs
- WebPartDescription.cs
- ProviderUtil.cs
- WrappedOptions.cs
- DbProviderFactory.cs
- LiteralDesigner.cs
- SafeFileHandle.cs
- WebPartMovingEventArgs.cs
- PopupControlService.cs
- MatrixTransform.cs
- recordstatescratchpad.cs
- ParsedAttributeCollection.cs
- EncryptedPackage.cs
- HtmlSelect.cs