Qual é o equivalente .NET do PHP var_dump?
-
01-07-2019 - |
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?
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:
Outras dicas
O código de exemplo para despejar um objeto e suas propriedades pode ser encontrada aqui:
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 .