none
Melhor forma de manipular um xml - para datareader RRS feed

  • Discussão Geral

  • Pessoal, temos um sistema que tem classes de acesso a banco, ou seja, sempre que precisamos fazer uma busca e trazer o resultado dessa consulta usamos uma chamada 'ConsultaReader(sql)', que traz um SqlDataReader com a consulta.

    Usamos pelo projeto todo, todas as consultas.

    Porém, precisamos integrar um webservice que retorna um arquivo xml.
    Que poderíamos fazer assim:
                DataSet ds = new DataSet();
    //traz xml na memória xml = WebService.GetDados(hash, query); //descompacta o xml (vem compactado) xml = Descompacta(xml); //grava o xml no disco string dsxml = "C:\\Logs\\data.xml"; File.WriteAllText(dsxml, xml); //Lê o XML ds.ReadXml(dsxml); //deleta o arquivo File.Delete(dsxml); //Retorna dataset return ds;
    Minhas duas dúvidas:

    1 - Como queremos manter compatibilidade com todo o sistema, precisava entregar como tipo 'SqlDataReader' para manter compatibilidade com todo o sistema legado (ou seja, iriamos tratar como um banco de dados, não como um webservice), existiria uma forma dessa conversão em um retorno 'SqlDataReader'?

    2 - Existe alguma forma de não precisar gravar em memória o xml e retornar como 'SqlDataReader'?

    Eu tentei 'desserializar' da seguinte forma:
                var dados = Descompacta(xml);
                SqlDataReader Dr = (SqlDataReader)new XmlSerializer(typeof(SqlDataReader)).Deserialize(new StringReader(dados));

    Mas, não funcionou!
    Uma luz? 


    quarta-feira, 13 de junho de 2018 11:43