Olá!
Segui o passo a passo da geração de XML e não consegui. O Visual Studio gera um monte de avisos e não cria o arquivo XML, como mostrado na imagem abaixo:
Abaixo meu código para verificação:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ByteBank.Modelos
{
/// <summary>
/// Define uma Conta Corrente do banco ByteBank.
/// </summary>
public class ContaCorrente
{
private static int TaxaOperacao;
public static int TotalDeContasCriadas { get; private set; }
public Cliente Titular { get; set; }
public int ContadorSaquesNaoPermitidos { get; private set; }
public int ContadorTransferenciasNaoPermitidas { get; private set; }
public int Numero { get; }
public int Agencia { get; }
private double _saldo = 100;
public double Saldo
{
get
{
return _saldo;
}
set
{
if (value < 0)
{
return;
}
_saldo = value;
}
}
/// <summary>
/// Cria uma instância de Conta Corrente com os argumentos utilizados.
/// </summary>
/// <param name="agencia">Representa o valor da propriedade <see cref="Agencia"/> e deve possuir um valor maior que zero</param>
/// <param name="numero">Representa o valor da propriedade <see cref="Numero"/> e deve possuir um valor maior que zero</param>
public ContaCorrente(int agencia, int numero)
{
if (numero <= 0)
{
throw new ArgumentException("O argumento agencia deve ser maior que 0.", nameof(agencia));
}
if (numero <= 0)
{
throw new ArgumentException("O argumento numero deve ser maior que 0.", nameof(numero));
}
Agencia = agencia;
Numero = numero;
TotalDeContasCriadas++;
TaxaOperacao = 30 / TotalDeContasCriadas;
}
public void Sacar(double valor)
{
if (valor < 0)
{
throw new ArgumentException("Valor inválido para o saque.", nameof(valor));
}
if (_saldo < valor)
{
ContadorSaquesNaoPermitidos++;
throw new SaldoInsuficienteException(Saldo, valor);
}
_saldo -= valor;
}
public void Depositar(double valor)
{
_saldo += valor;
}
public void Transferir(double valor, ContaCorrente contaDestino)
{
if (valor < 0)
{
throw new ArgumentException("Valor inválido para a transferência.", nameof(valor));
}
try
{
Sacar(valor);
}
catch (SaldoInsuficienteException ex)
{
ContadorTransferenciasNaoPermitidas++;
throw new OperacaoFinanceiraException("Operação não realizada.", ex);
}
contaDestino.Depositar(valor);
}
}
}