.NET中是否有内置的方法可以将对象的所有属性等写入控制台?
当然可以使用反射,但我很好奇这是否已经exists...especially了,因为你可以在Visual Studio的即时窗口中做到这一点。在这里,您可以输入一个对象名称(在调试模式下),然后按enter,它就会非常漂亮地打印出来。
像这样的方法存在吗?
发布于 2009-05-12 11:33:01
您可以使用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的抽象级别。
发布于 2009-05-12 10:59:05
发布于 2009-05-12 11:12:34
下面的代码片段将完成所需的功能:
Type t = obj.GetType(); // Where obj is object whose properties you need.
PropertyInfo [] pi = t.GetProperties();
foreach (PropertyInfo p in pi)
{
System.Console.WriteLine(p.Name + " : " + p.GetValue(obj));
}
我认为如果你把它写成扩展方法,你可以在所有类型的对象上使用它。
https://stackoverflow.com/questions/852181
复制相似问题