Flickr Images

Pages

Banner 468

quarta-feira, 29 de maio de 2013

Visualizando atributos de entidades utilizando o DebuggerDisplay

0 comentários
 
Olá para todos! Como vão? Resolvi escrever este post pois existe uma coisa que me incomoda muito. Sabe quando criamos uma entidade qualquer. E depois adicionamos a entidade em uma coleção. Ai precisamos debugar e ver quais os valores que estão dentro da coleção. Quando ai vamos nós expandir item a item da coleção... Isso é algo realmente chato. Pesquisando sobre como melhorar isto acabei encontrando o DebuggerDisplay. Ele é responsável por exibir o valor de alguma propriedade na janela do debug. Bom agora vamos aos códigos:
Criei um projeto do tipo console application.
Crie uma Classe com o nome de AlunoEntity

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UsandoDebuggerDisplay
{
    
    public class AlunoEntity
    {
        public string Nome { get; set; }
        public int Matricula { get; set; }
        public DateTime DataMatricula { get; set; }
    }
}

Agora dentro da nossa class Program crio um List de alunos:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UsandoDebuggerDisplay
{
    class Program
    {
        static void Main(string[] args)
        {
            var alunos = new List();

            alunos.Add(new AlunoEntity() { Nome = "Pedro Marques", Matricula = 1, DataMatricula = DateTime.Now.AddDays(-4) });
            alunos.Add(new AlunoEntity() { Nome = "Adriana Freitas", Matricula = 2, DataMatricula = DateTime.Now.AddDays(-5) });
            alunos.Add(new AlunoEntity() { Nome = "Joana Almeida", Matricula = 3, DataMatricula = DateTime.Now.AddDays(-3) });
            alunos.Add(new AlunoEntity() { Nome = "Marcelo José", Matricula = 4, DataMatricula = DateTime.Now.AddDays(-6) });

        }
    }
}
Bom agora se formos debugar olha bem o que acontece:

Isso me irrita muito....

Agora vamos usar o DebuggerDisplay. Nossa classe AlunoEntity vai ficar assim:


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UsandoDebuggerDisplay
{
    [DebuggerDisplay("Nome: {Nome} Matricula: {Matricula} Data de Matricula:{DataMatricula}")]
    public class AlunoEntity
    {
        public string Nome { get; set; }
        public int Matricula { get; set; }
        public DateTime DataMatricula { get; set; }
    }
}


Observe bem a linha:
[DebuggerDisplay("Nome: {Nome} Matricula: {Matricula} Data de Matricula:{DataMatricula}")]


Agora o resultado:



Show não é?

Bom por hoje é apenas isto. Qualquer coisa comentem e mandem as dúvidas e/ou sugestões!

Referência:
http://msdn.microsoft.com/en-us/library/x810d419.aspx
Readmore...