2
respostas

Dúvida sobre a função das classes

Olá. Poderia explanar sobre a função de cada classe no código do método ToXml da classe Carrinho? - XmlSerializer -StringWriter -XmlWriter

2 respostas

Olá Ricardo,

public string ToXml()
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(Carrinho));
    StringWriter stringWriter = new StringWriter();
    using(XmlWriter writer = XmlWriter.Create(stringWriter))
    {
        xmlSerializer.Serialize(writer, this);
        return stringWriter.ToString();
    }
}

Neste código a classe XmlSerializer é responsável por fazer a serialização dos dados do objeto carrinho, ou seja, vai transformá-lo no xml.

Já a classe XmlWriter é a classe que escreve o Xml propriamente dito e a classe StringWriter monta o texto a ser escrito.

Cada classe faz uma pequena parte do processo.

Abraço!

public string ToXml()
{
    XmlSerializer iniciaXml = new XmlSerializer(typeof(Carrinho));
    StringWriter escreveXml = new StringWriter();
    using(XmlWriter escreve = XmlWriter.Create(escreveXml))
    {
        iniciaXml.Serialize(escreve, this);
        return escreveXml.ToString();
    }
}

Vamos iniciar o XML dentro do carrinho com o iniciaXml, em seguida, vamos permitir que ele faça a escrita do XML com o escreveXml. Vamos usar(using) o XmlWriter para criar o escreveXml. Então, quero iniciar a escrita do XML, com o iniciaXml para que ele escreva (escreve,) o XML dentro deste Carrinho (this) e que retorne(return) os dados escritos como .ToString em (escreve.Xml)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software