是否有内置的.NET方法来获取对象的所有属性和值?

假设我有:

public class Item { public string SKU {get; set; } public string Description {get; set; } } .... 

.NET中是否有内置方法可以让我获取类型为Item变量i的属性和值,如下所示:

 {SKU: "123-4556", Description: "Millennial Radio Classic"} 

我知道.ToString()可以重载以提供这种function,但我不记得这是否已经在.NET中提供。

您作为示例描述的格式看起来很像JSON ,因此您可以使用JavaScriptSerializer :

 string value = new JavaScriptSerializer().Serialize(myItem); 

如果它不是你正在使用的JSON,而只是普通的C#类,那么就可以使用System.Reflection命名空间了

类似的东西会起作用

 Item item = new Item(); foreach (PropertyInfo info in item.GetType().GetProperties()) { if (info.CanRead) { // To retrieve value object o = info.GetValue(myObject, null); // To Set Value info.SetValue("SKU", "NewValue", null); } } 

提供,您应该proper getset您想要工作的properties

XMLSerializer也可以运行: http : //msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

您可以使用JSON库,例如JSON.NET或内置的JavaScriptSerializer 。