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
- TransactionException.cs
- DateTimeConstantAttribute.cs
- RefreshEventArgs.cs
- TdsParserSessionPool.cs
- CodeNamespace.cs
- FormViewDeletedEventArgs.cs
- Matrix3DValueSerializer.cs
- XPathBuilder.cs
- FunctionParameter.cs
- BufferedResponseStream.cs
- DataServiceRequestArgs.cs
- XDRSchema.cs
- safePerfProviderHandle.cs
- StatusBarPanelClickEvent.cs
- SuppressIldasmAttribute.cs
- TextTreeTextNode.cs
- WebPartEditorApplyVerb.cs
- Screen.cs
- EdmProperty.cs
- SafeSystemMetrics.cs
- DataGridViewRowEventArgs.cs
- FormViewUpdatedEventArgs.cs
- DataColumnChangeEvent.cs
- TextDecoration.cs
- ACE.cs
- SlipBehavior.cs
- Item.cs
- SemaphoreFullException.cs
- CursorConverter.cs
- DeviceSpecificChoiceCollection.cs
- followingquery.cs
- DbDeleteCommandTree.cs
- Solver.cs
- LoadWorkflowCommand.cs
- EntitySqlQueryCacheKey.cs
- RichTextBox.cs
- DocumentPage.cs
- Pair.cs
- ButtonStandardAdapter.cs
- ProxyHwnd.cs
- Debug.cs
- GridItemPattern.cs
- TileBrush.cs
- CollectionConverter.cs
- RefExpr.cs
- StaticResourceExtension.cs
- ApplicationCommands.cs
- ArraySubsetEnumerator.cs
- PackageStore.cs
- M3DUtil.cs
- WebServiceData.cs
- HttpException.cs
- PersonalizationStateInfo.cs
- XmlSerializerFactory.cs
- Executor.cs
- AssemblyFilter.cs
- TimeSpan.cs
- InvokeWebService.cs
- TreeNodeEventArgs.cs
- ExtensionDataReader.cs
- BinaryCommonClasses.cs
- RichTextBox.cs
- SafeNativeMethods.cs
- SystemIPInterfaceProperties.cs
- QilGenerator.cs
- AspNetPartialTrustHelpers.cs
- XmlSchemaSubstitutionGroup.cs
- KeyedCollection.cs
- OracleBFile.cs
- XNodeNavigator.cs
- CookielessHelper.cs
- DataMemberConverter.cs
- EntitySetBase.cs
- ErrorWebPart.cs
- PathFigure.cs
- Privilege.cs
- ActiveXContainer.cs
- XmlSchemaSimpleContent.cs
- MethodCallExpression.cs
- DynamicExpression.cs
- PrintingPermission.cs
- ToolStripDropTargetManager.cs
- TextChangedEventArgs.cs
- TextElement.cs
- ResXResourceSet.cs
- FormsAuthenticationConfiguration.cs
- FacetDescriptionElement.cs
- QueryContinueDragEventArgs.cs
- WebBrowserDocumentCompletedEventHandler.cs
- Keywords.cs
- DbProviderFactories.cs
- InvalidContentTypeException.cs
- CodeIterationStatement.cs
- ListViewInsertedEventArgs.cs
- DataGridCommandEventArgs.cs
- CultureInfo.cs
- dsa.cs
- ListBase.cs
- DataGridColumnStyleMappingNameEditor.cs
- Attributes.cs