<分区>
是否有内置于 .NET 中的方法可以将对象的所有属性等写入控制台?
当然可以利用反射,但我很好奇它是否已经存在...特别是因为您可以在 Visual Studio 的立即窗口中进行反射。您可以在那里输入一个对象名称(在 Debug模式下),按回车键,它会非常漂亮地打印出所有内容。
有这样的方法吗?
<分区>
是否有内置于 .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/