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

Ben*_*ack 5 .net c#

比方说我有:

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

....
Run Code Online (Sandbox Code Playgroud)

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

{SKU: "123-4556", Description: "Millennial Radio Classic"}
Run Code Online (Sandbox Code Playgroud)

我知道.ToString()可以重载以提供此功能,但我不记得这是否已在.NET中提供.

Rex*_*x M 5

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

string value = new JavaScriptSerializer().Serialize(myItem);
Run Code Online (Sandbox Code Playgroud)


Asa*_*sad 5

如果它不是你正在使用的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);
   }
}
Run Code Online (Sandbox Code Playgroud)

与提供的,你应该有proper getset到位的properties要共事.