Pergunta

Eu lembro de ter visto um tempo atrás que há algum método talvez o namespace Reflexão que de forma recursiva executar ToString() em todas as propriedades de um objeto e formatá-lo bem para exibição.

Sim, eu sei tudo que eu poderia querer estará acessível através do depurador, mas eu estou querendo saber se alguém sabe esse comando?

Foi útil?

Solução

Eu acho que o que você está procurando é / foi chamado ObjectDumper. Ele usa reflexão para percorrer e saída de todas as diferentes propriedades de um objeto. A primeira vez que ouvi sobre isso ao mesmo tempo aprender LINQ, ea maioria dos exemplos no Linq em Ação uso livro-lo.

Parece que a Microsoft não incluí-lo na versão final do Linq embora, mas o código ainda está em estado selvagem. Eu fiz uma busca rápida no google para isso e aqui está um link para ele:

ObjectDumper Source Code

Outras dicas

O código de exemplo para despejar um objeto e suas propriedades pode ser encontrada aqui:

http://www.developer.com/net/csharp/article .php / 3713886

Você pode escrevê-lo por si mesmo. Por exemplo, serializar-lo em JSON usando a biblioteca JSON.net de Newtonsoft e gravação que JSON para console. Aqui está um exemplo:

using Newtonsoft.Json;

static class Pretty
{
    public static void Print<T> (T x)
    {
        string json = JsonConvert.SerializeObject(x, Formatting.Indented);
        Console.WriteLine(json);
    }
}

Uso:

Pretty.Print(whatever);

Eu certamente poderia ver o uso em tal coisa uma, mas na Net não vai você na maior parte apenas obter uma lista de nomes de tipo (String, Array, etc)? A maioria dos built-ins não têm "útil" ToString () sobrecargas pré-escrita, não é?

Aqui está um link com dumper código e um projeto de demonstração que mostra como usá-lo. Faça o download aqui .

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