Что такое .NET-эквивалент PHP var_dump?
Я помню, что некоторое время назад я видел некоторый метод, возможно, в пространстве имен Reflection, который бы рекурсивно запускал ToString()
для всех свойств объекта и отформатировал его для отображения.
Да, я знаю, что все, что мне нужно, будет доступно через отладчик, но мне интересно, знает ли кто-нибудь эту команду?
Ответы
Ответ 1
Я думаю, что то, что вы ищете, было/было вызвано ObjectDumper. Он использует отражение для повторения и вывода всех различных свойств объекта. Я впервые услышал об этом, изучая LINQ, и большинство примеров в книге Linq in Action используют его.
Похоже, что Microsoft не включила его в окончательную версию Linq, но код все еще не работает. Я сделал быстрый поиск в Google, и вот ссылка на него:
Исходный код ObjectDumper
Ответ 2
Пример кода для удаления объекта и его свойств можно найти здесь:
http://www.developer.com/net/csharp/article.php/3713886
Ответ 3
Я мог бы, конечно, увидеть использование в такой вещи, но в .Net вы не просто получите список имен типов (String, Array и т.д.)? Большинство встроенных модулей не имеют "полезных" ToString() перегрузок предварительно написанных, не так ли?
Ответ 4
Здесь приведена ссылка на кумпсер кода и демонстрационный проект, который показывает вам, как его использовать. Загрузить здесь.
Ответ 5
Вы можете написать это самостоятельно. Например, сериализуйте его в json, используя библиотеку Newtonsoft JSON.net, и напишите, что json для консоли. Вот пример:
using Newtonsoft.Json;
static class Pretty
{
public static void Print<T> (T x)
{
string json = JsonConvert.SerializeObject(x, Formatting.Indented);
Console.WriteLine(json);
}
}
Использование:
Pretty.Print(whatever);