当试图查看已经实例化的给定类的所有实例attrs时,我可以在python中执行此操作:
myObject.__dict__
查看为此实例存储的所有键/值对。
可以在C#中完成吗?
答案 0 :(得分:2)
不完全重复,所以我不会这样做,但请看How to get the list of properties of a class?。有一些很好的例子来说明如何使用Reflection
库。例如,您可以使用myObject.GetType().GetProperties()
。这仅返回至少具有一个访问者(get
或set
)的属性。因此,返回时不会包含public int num = 0
的实例,但会public int num {get; set;} = 0
。
Type.GetFields()
和Type.GetField(string)
也可能与您正在寻找的内容接近。例如:
Type t = typeof(myType);
FieldInfo[] arr = t.GetFields(BindingFlags.Public|BindingFligs.NonPublic);
var newInstance = new myType();
foreach (FieldInfo i in arr)
{
Console.WriteLine(i.GetValue(newInstance));
}
答案 1 :(得分:0)
我不确定任何具体的方法。但是,您可以对对象进行JSON编码并将其打印为类似的概念。
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jsonSerializer.Serialize(yourDictionary);
//output json
也许值得让它做一个“漂亮的印刷品”,因此它更容易阅读:
How do I get formatted JSON in .NET using C#?
这使用JSON.net,但无论如何我更喜欢它:
string json = JsonConvert.SerializeObject(yourDictionary, Formatting.Indented);
Console.WriteLine(json);