示例#1
0
        /// <summary>
        /// Cria um nó com os dados basicos de um endpoint.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="bindingType"></param>
        /// <param name="contract"></param>
        /// <param name="children"></param>
        /// <returns></returns>
        private ServiceAddressNode CreateEndpointNode(string name, string bindingType, string contract, params ServiceAddressNode[] children)
        {
            var parameters = new ServiceAddressParameterCollection {
                new ServiceAddressParameter("binding", bindingType),
                new ServiceAddressParameter("contract", contract),
                new ServiceAddressParameter("name", name)
            };

            return(new ServiceAddressNode("endpoint", parameters, children != null ? children.Where(f => f != null).ToArray() : null));
        }
        /// <summary>
        /// Construtor usado na deserialização.
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        private ServiceAddressNode(SerializationInfo info, StreamingContext context)
        {
            _children   = new List <ServiceAddressNode>();
            _parameters = new ServiceAddressParameterCollection();
            Name        = info.GetString("Name");
            _parameters = (ServiceAddressParameterCollection)info.GetValue("Parameters", typeof(ServiceAddressParameterCollection));
            var count = info.GetInt32("Count");

            for (var i = 0; i < count; i++)
            {
                _children.Add((ServiceAddressNode)info.GetValue(i.ToString(), typeof(ServiceAddressNode)));
            }
        }
示例#3
0
        /// <summary>
        /// Cria uma coleção com base nos atributos XML informados.
        /// </summary>
        /// <param name="attributes"></param>
        /// <returns></returns>
        public static ServiceAddressParameterCollection CreateFromXmlAttributes(System.Xml.XmlAttributeCollection attributes)
        {
            if (attributes == null)
            {
                throw new ArgumentNullException("attributes");
            }
            var result = new ServiceAddressParameterCollection();

            foreach (System.Xml.XmlAttribute i in attributes)
            {
                result.Add(i.LocalName, i.Value);
            }
            return(result);
        }
        /// <summary>
        /// Cria o nó a partir de um elemento xml.
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public static ServiceAddressNode CreateFromXmlElement(System.Xml.XmlElement element)
        {
            if (element == null)
            {
                throw new ArgumentNullException("element");
            }
            var parameters = ServiceAddressParameterCollection.CreateFromXmlAttributes(element.Attributes);
            var children   = new List <ServiceAddressNode>();

            if (element.HasChildNodes)
            {
                foreach (var i in element.ChildNodes)
                {
                    var xmlElement = i as System.Xml.XmlElement;
                    if (xmlElement != null)
                    {
                        children.Add(CreateFromXmlElement(xmlElement));
                    }
                }
            }
            return(new ServiceAddressNode(element.LocalName, parameters, children.ToArray()));
        }
 /// <summary>
 /// Cria uma nova instancia do nó definindo os parametros iniciais.
 /// </summary>
 /// <param name="name"></param>
 /// <param name="parameters"></param>
 /// <param name="children"></param>
 public ServiceAddressNode(string name, ServiceAddressParameterCollection parameters, params ServiceAddressNode[] children)
 {
     Name = name;
     if (parameters != null)
     {
         _parameters = parameters;
     }
     else
     {
         _parameters = new ServiceAddressParameterCollection();
     }
     _children = new List <ServiceAddressNode>();
     if (children != null)
     {
         foreach (var i in children)
         {
             if (i != null)
             {
                 Add(i);
             }
         }
     }
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 public ServiceAddressNode()
 {
     _parameters = new ServiceAddressParameterCollection();
     _children   = new List <ServiceAddressNode>();
 }