System.ServiceModel.EndpointAddress.ReadContents C# (CSharp) Метод

ReadContents() приватный статический Метод

private static ReadContents ( AddressingVersion addressingVersion, System.IO.XmlReader reader ) : EndpointAddress
addressingVersion AddressingVersion
reader System.IO.XmlReader
Результат EndpointAddress
		private static EndpointAddress ReadContents (
			AddressingVersion addressingVersion, XmlReader reader)
		{
			Uri uri = null;
			EndpointIdentity identity = null;
			reader.MoveToContent ();
			if (reader.LocalName == "Address" && 
			    reader.NamespaceURI == addressingVersion.Namespace &&
			    reader.NodeType == XmlNodeType.Element &&
			    !reader.IsEmptyElement)
				uri = new Uri (reader.ReadElementContentAsString ());
			else
				throw new XmlException (String.Format (
					"Expecting 'Address' from namespace '{0}', but found '{1}' from namespace '{2}'",
					addressingVersion.Namespace, reader.LocalName, reader.NamespaceURI));

			reader.MoveToContent ();
#if !NET_2_1
			MetadataSet metadata = null;
			if (reader.LocalName == "Metadata" &&
			    reader.NamespaceURI == addressingVersion.Namespace &&
			    !reader.IsEmptyElement) {
				reader.Read ();
				metadata = (MetadataSet) new XmlSerializer (typeof (MetadataSet)).Deserialize (reader);
				reader.MoveToContent ();
				reader.ReadEndElement ();
			}
			reader.MoveToContent ();
			if (reader.LocalName == "Identity" &&
			    reader.NamespaceURI == Constants.WsaIdentityUri) {
				// FIXME: implement
				reader.Skip ();
			}
#endif

			if (addressingVersion == AddressingVersion.WSAddressing10 && uri == w3c_anonymous)
				uri = anonymous_role;

#if NET_2_1
			return new EndpointAddress (uri, identity);
#else
			if (metadata == null)
				return new EndpointAddress (uri, identity);
			return new EndpointAddress (uri, identity,
				AddressHeader.CreateAddressHeader (metadata));
#endif
		}