Exemplo n.º 1
0
        public override T LerXML <T>(XmlDocument doc)
        {
            if (typeof(T) != typeof(EnvEvento))
            {
                throw new InvalidCastException($"Cannot cast type '{typeof(T).Name}' into type '{typeof(EnvEvento).Name}'.");
            }

            var retornar = base.LerXML <T>(doc) as EnvEvento;

            var eventos = doc.GetElementsByTagName("evento");

            if ((eventos?.Count ?? 0) > 0)
            {
                retornar.Evento = new Evento[eventos.Count];

                var index = 0;

                foreach (XmlElement xmlEl in eventos)
                {
                    var xml = new StringBuilder();
                    xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                    xml.Append($"<envEvento xmlns=\"{xmlEl.NamespaceURI}\">");
                    xml.Append($"{xmlEl.OuterXml}</envEvento>");

                    var envEvt = XMLUtility.Deserializar <EnvEvento>(xml.ToString());
                    var evt    = envEvt.Evento[0];
                    SignEvent(evt, xmlEl);
                    retornar.Evento[index++] = evt;
                }
            }

            return((T)(object)retornar);
        }
Exemplo n.º 2
0
        private void SignEvent(Evento evento, XmlElement xmlEl)
        {
            var signature = xmlEl.GetElementsByTagName("Signature")[0];

            if (signature != null)
            {
                var signatureEvento = new XmlDocument();

                signatureEvento.LoadXml(signature.OuterXml);
                evento.Signature = XMLUtility.Deserializar <Signature>(signatureEvento);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Deserializar XML (Converte o XML para um objeto)
 /// </summary>
 /// <typeparam name="T">Tipo do objeto</typeparam>
 /// <param name="doc">Conteúdo do XML a ser deserilizado</param>
 /// <returns>Retorna o objeto com o conteúdo do XML deserializado</returns>
 public virtual T LerXML <T>(XmlDocument doc)
     where T : new()
 {
     return(XMLUtility.Deserializar <T>(doc));
 }