C#:打印对象的所有属性

标签 c# object serialization console

<分区>

是否有内置于 .NET 中的方法可以将对象的所有属性等写入控制台?

当然可以利用反射,但我很好奇它是否已经存在...特别是因为您可以在 Visual Studio 的立即窗口中进行反射。您可以在那里输入一个对象名称(在 Debug模式下),按回车键,它会非常漂亮地打印出所有内容。

有这样的方法吗?

最佳答案

您可以使用 TypeDescriptor类来做到这一点:

foreach(PropertyDescriptor descriptor in TypeDescriptor.GetProperties(obj))
{
    string name = descriptor.Name;
    object value = descriptor.GetValue(obj);
    Console.WriteLine("{0}={1}", name, value);
}

TypeDescriptor 位于 System.ComponentModel 命名空间中,是 Visual Studio 用来在其属性浏览器中显示对象的 API。它最终基于反射(就像任何解决方案一样),但它从反射 API 提供了相当好的抽象级别。

关于C#:打印对象的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852181/

相关文章:

PHP反序列化偏移错误

c#:如何发布异步请求并使用 httpclient 获取流?

c# - 如何重命名和重新映射具有非法 json 字段名称的字段

Java Arraylist 计算仅从文本文件读取第一行

java - 使用 GSon 反序列化 Map<Object, Object>

java - 序列化和普通对象存储的区别?

jquery - 如何覆盖 jquery 的 .serialize 以包含未选中的复选框

c# - WPF ProgressBar 在更新太快时会失去光泽 - 错误?

c# - 禁止覆盖调用 base

javascript - 如何获取javascript对象中的值编号?