System.ServiceModel.Discovery.EndpointDiscoveryMetadata.WriteXml C# (CSharp) Méthode

WriteXml() private méthode

private WriteXml ( XmlWriter writer, System.ServiceModel.Discovery.DiscoveryVersion version ) : void
writer System.Xml.XmlWriter
version System.ServiceModel.Discovery.DiscoveryVersion
Résultat void
		internal void WriteXml (XmlWriter writer, DiscoveryVersion version)
		{
			if (writer == null)
				throw new ArgumentNullException ("writer");

			// standard members
			if (Address != null)
				Address.WriteTo (AddressingVersion.WSAddressing10, writer);

			writer.WriteStartElement ("d", "Types", version.Namespace);
			int p = 0;
			foreach (var qname in ContractTypeNames)
				if (writer.LookupPrefix (qname.Namespace) == null)
					writer.WriteAttributeString ("xmlns", "p" + p++, "http://www.w3.org/2000/xmlns/", qname.Namespace);
			writer.WriteValue (ContractTypeNames);
			writer.WriteEndElement ();

			if (Scopes.Count > 0) {
				writer.WriteStartElement ("Scopes", version.Namespace);
				writer.WriteValue (Scopes);
				writer.WriteEndElement ();
			}

			if (ListenUris.Count > 0) {
				writer.WriteStartElement ("XAddrs", version.Namespace);
				writer.WriteValue (ListenUris);
				writer.WriteEndElement ();
			}
			
			writer.WriteStartElement ("MetadataVersion", version.Namespace);
			writer.WriteValue (Version);
			writer.WriteEndElement ();

			// non-standard members

			foreach (var ext in Extensions)
				ext.WriteTo (writer);
		}