Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Método "AsXml()" com membros privados

Boa noite!

Tentei simular o método de extensão "AsXml()" utilizado na aula (com o "XmlSerializer"), porem, ele retorna uma exception informando que a propriedade 'Saldo' não tem um setter público (o que ocorre de fato), e só funciona setando a prop 'Saldo' como public.

Como posso utilizar essa método com objetos que contenham propriedades private e protected?

Abraço!

1 resposta
solução!

Olá, Leonardo!

Existe uma limitação no XmlSerializer que o impede de serializar classes com um private setter.

Para contornar isso, você pode usar no lugar do XmlSerializer um DataContractSerializer, que consegue serializar classes com private setter:

var serializer = new DataContractSerializer(typeof(Conta));
var sb = new StringBuilder();
using (var writer = XmlWriter.Create(sb))
{
    serializer.WriteObject(writer, resource);
    writer.Flush();
    return sb.ToString();
}

Veja se funciona para você.

Boa sorte e bons estudos!