protected virtual void WriteApplicationServiceDescriptorChildren(XmlDictionaryWriter writer, ApplicationServiceDescriptor applicationServiceDescriptor)
        {
            if (applicationServiceDescriptor == null)
            {
                return;
            }
            if (!applicationServiceDescriptor.ApplicationServiceEndpoint.Any())
            {
                throw XmlWriterExceptionHelper.CreateRequiredChildElementMissingException(Saml2MetadataConstants.Elements.RoleDescriptor, applicationServiceDescriptor.GetXmlTypeName());
            }

            WriteWebServiceDescriptorChildren(writer, applicationServiceDescriptor);

            foreach (var applicationServiceEndpoint in applicationServiceDescriptor.ApplicationServiceEndpoint)
            {
                WsAddressingSerializer.WriteEndpointReferenceCollection(writer, Prefix, Elements.ApplicationServiceEndpoint, Namespace, applicationServiceEndpoint);
            }

            foreach (var singleSignOutNotificationEndpoint in applicationServiceDescriptor.SingleSignOutNotificationEndpoint)
            {
                WsAddressingSerializer.WriteEndpointReferenceCollection(writer, Prefix, Elements.SingleSignOutNotificationEndpoint, Namespace, singleSignOutNotificationEndpoint);
            }

            foreach (var passiveRequestorEndpoint in applicationServiceDescriptor.PassiveRequestorEndpoint)
            {
                WsAddressingSerializer.WriteEndpointReferenceCollection(writer, Prefix, Elements.PassiveRequestorEndpoint, Namespace, passiveRequestorEndpoint);
            }
        }
Example #2
0
        public virtual void WriteEndpointReference(XmlDictionaryWriter writer, EndpointReference endpointReference)
        {
            if (endpointReference == null)
            {
                return;
            }

            writer.WriteStartElement(Elements.EndpointReference, Namespace);
            if (!writer.TryWriteElementValue(Elements.Address, Namespace, endpointReference.Address))
            {
                throw XmlWriterExceptionHelper.CreateRequiredChildElementMissingException(Elements.EndpointReference, Elements.Address);
            }

            writer.WriteEndElement();
        }