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
- PackageFilter.cs
- TableFieldsEditor.cs
- DbDataSourceEnumerator.cs
- ListDictionary.cs
- WSFederationHttpBinding.cs
- AnnotationStore.cs
- BufferedStream.cs
- _FixedSizeReader.cs
- DbBuffer.cs
- PageRequestManager.cs
- SectionUpdates.cs
- HttpListenerTimeoutManager.cs
- StorageFunctionMapping.cs
- CompositeDataBoundControl.cs
- DirectionalLight.cs
- Zone.cs
- EncodingInfo.cs
- StopRoutingHandler.cs
- UpdateExpressionVisitor.cs
- DesignerActionUI.cs
- SelectedDatesCollection.cs
- ParentControlDesigner.cs
- SerialPort.cs
- ReadOnlyAttribute.cs
- DataServiceException.cs
- ModelFunction.cs
- CryptoHelper.cs
- XmlQuerySequence.cs
- DecimalFormatter.cs
- CollectionViewGroupInternal.cs
- InArgument.cs
- DeflateEmulationStream.cs
- HtmlFormWrapper.cs
- SHA1Managed.cs
- WebDescriptionAttribute.cs
- BufferModeSettings.cs
- httpstaticobjectscollection.cs
- BindingExpression.cs
- DependencyPropertyHelper.cs
- NegotiationTokenAuthenticatorStateCache.cs
- CacheMemory.cs
- NullNotAllowedCollection.cs
- XmlBoundElement.cs
- ElementMarkupObject.cs
- SqlPersonalizationProvider.cs
- FormatConvertedBitmap.cs
- ApplicationSecurityInfo.cs
- SettingsPropertyValue.cs
- SiteMapNodeItem.cs
- TypeDescriptor.cs
- SystemException.cs
- ValidationErrorCollection.cs
- WorkflowTransactionOptions.cs
- TextBoxView.cs
- ReflectTypeDescriptionProvider.cs
- DocComment.cs
- XmlSchemaAttributeGroupRef.cs
- CodeDirectiveCollection.cs
- TableLayoutSettingsTypeConverter.cs
- Soap.cs
- BamlResourceContent.cs
- _ConnectStream.cs
- Helpers.cs
- BindingCompleteEventArgs.cs
- PolyBezierSegment.cs
- IsolatedStorageException.cs
- FormDocumentDesigner.cs
- XmlBinaryReader.cs
- ConfigurationSectionCollection.cs
- BaseCodePageEncoding.cs
- CacheSection.cs
- QueryExtender.cs
- DataExchangeServiceBinder.cs
- ThreadStaticAttribute.cs
- InvokeGenerator.cs
- GridViewRowEventArgs.cs
- ThicknessAnimationBase.cs
- RectangleHotSpot.cs
- BindingWorker.cs
- OrderByQueryOptionExpression.cs
- COMException.cs
- CategoryAttribute.cs
- XsdDateTime.cs
- PlainXmlWriter.cs
- Soap12ServerProtocol.cs
- Serializer.cs
- SystemNetworkInterface.cs
- SqlPersonalizationProvider.cs
- SiteMapNode.cs
- BaseDataList.cs
- GlobalAllocSafeHandle.cs
- SwitchCase.cs
- ClientTargetCollection.cs
- XsltConvert.cs
- StructuralCache.cs
- ScriptReference.cs
- TypeConverterAttribute.cs
- WindowsAuthenticationModule.cs
- TextElementCollectionHelper.cs
- HttpProcessUtility.cs