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
- IpcClientManager.cs
- EntityDataSourceState.cs
- NotifyParentPropertyAttribute.cs
- StringCollectionMarkupSerializer.cs
- BitmapMetadataBlob.cs
- SafeFileMappingHandle.cs
- ArcSegment.cs
- UnsupportedPolicyOptionsException.cs
- Column.cs
- HttpHandlersInstallComponent.cs
- Exceptions.cs
- RectangleHotSpot.cs
- DataMemberAttribute.cs
- OleDbEnumerator.cs
- MarkupWriter.cs
- TypeResolvingOptions.cs
- PersistenceContextEnlistment.cs
- InputLanguageCollection.cs
- RijndaelManagedTransform.cs
- SrgsDocumentParser.cs
- DataSourceExpression.cs
- NavigationProperty.cs
- FilterEventArgs.cs
- HtmlInputRadioButton.cs
- ElementNotAvailableException.cs
- ClickablePoint.cs
- DocumentOrderComparer.cs
- DataBoundControlHelper.cs
- PeerApplication.cs
- ChannelManagerHelpers.cs
- DrawingDrawingContext.cs
- XmlSchemaAnnotation.cs
- BindingElement.cs
- DragCompletedEventArgs.cs
- TimeSpanStorage.cs
- TreeViewEvent.cs
- HyperLinkStyle.cs
- DataGridViewHitTestInfo.cs
- ExecutionProperties.cs
- XmlQualifiedName.cs
- MergePropertyDescriptor.cs
- UriParserTemplates.cs
- IndicCharClassifier.cs
- TrustLevelCollection.cs
- WebHttpDispatchOperationSelector.cs
- ErrorProvider.cs
- UnsafeNativeMethods.cs
- DispatcherHookEventArgs.cs
- DockPanel.cs
- ConnectionManagementSection.cs
- TimeoutHelper.cs
- MessageQueueInstaller.cs
- ImageMap.cs
- ChannelServices.cs
- PrintingPermissionAttribute.cs
- TraceSection.cs
- BrowserCapabilitiesCompiler.cs
- DBCommandBuilder.cs
- RegexRunner.cs
- NetworkInterface.cs
- GrowingArray.cs
- Internal.cs
- StringValidator.cs
- VirtualPathProvider.cs
- TextRangeEdit.cs
- RepeatButtonAutomationPeer.cs
- AssemblyBuilder.cs
- BulletedList.cs
- JoinElimination.cs
- MultilineStringConverter.cs
- ScrollChrome.cs
- ImpersonationContext.cs
- HttpsHostedTransportConfiguration.cs
- SqlClientPermission.cs
- ProfileSettings.cs
- UDPClient.cs
- TextShapeableCharacters.cs
- IsolatedStorageException.cs
- CharacterString.cs
- ThemeableAttribute.cs
- ToolStripDesignerAvailabilityAttribute.cs
- CheckBoxList.cs
- DescriptionAttribute.cs
- XmlMtomWriter.cs
- ImageSource.cs
- TargetException.cs
- SchemaImporter.cs
- HostingEnvironmentException.cs
- FlowDocument.cs
- CultureMapper.cs
- LocalizableResourceBuilder.cs
- EngineSiteSapi.cs
- CryptoHandle.cs
- DesignerAutoFormatStyle.cs
- SiteOfOriginPart.cs
- AsmxEndpointPickerExtension.cs
- ConfigXmlText.cs
- CompressedStack.cs
- PersistenceTypeAttribute.cs
- RTLAwareMessageBox.cs