Pergunta

Como faço para ir sobre como escrever os resultados de um para o caminho XML procedimento armazenado na memória, em vez de um arquivo no disco?

forma atual de fazer as coisas:

private  void GetChartData(string OC_Ttl1, string OC_Ttl2, string OC_OL31)
{
    OC_Ttl_1 = OC_Ttl1;
    OC_Ttl_2 = OC_Ttl2;
    OC_OL3_1 = OC_OL31;
    //Output xml
    DataSet orgDataSet = new DataSet();
    orgDataSet.ReadXml(cmd_Org.ExecuteXmlReader(), XmlReadMode.Auto);
    orgDataSet.WriteXml("InputXMLFiles/" + OC_OL3_1.Replace(" ", 
        "_").Replace("/", "-") + ".xml");
}

Em vez de escrever o arquivo no disco que outros métodos, em seguida, operar, eu quero ter esse método retornar o xml para memeory.

Eu suponho que isso seria muito mais rápido do que escrever para o disco ....

Foi útil?

Solução

Você tem uma XmlReader - você pode fazer todas tipos de coisas. Por exemplo

XmlDocument doc = new XmlDocument();
using(XmlReader xr = cmd_Org.ExecuteXmlReader()) {
    doc.Load(xr);
}
// TODO: play with "doc" with xpath etc

Outras dicas

DataSet.WriteXml tem muitas sobrecargas - você pode gravar em um fluxo (incluindo um MemoryStream) e um escritor (incluindo um StringWriter). Isso supondo que você realmente quer ir através de um DataSet - Se você está feliz recebendo o XML diretamente sem usar um DataSet então é só usar sugestões de Marc

.

Você pode chamar a sobrecarga de WriteXml que grava em um córrego, e usar um MemoryStream, embora você possa dizer que deseja que o XML como uma grande cadeia longa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top