Ich muss eine Funktion erstellen, die alle Eigenschaften eines Objekts (einschließlich einer untergeordneten Objekte) erhalten Dies ist für meine Fehlerprotokollierungsfunktion. Momentan gibt mein Code immer 0 Eigenschaften zurück. Bitte lassen Sie mich wissen, was ich falsch mache, danke!Reflection-Klasse, um alle Eigenschaften eines Objekts zu erhalten
public static string GetAllProperiesOfObject(object thisObject)
{
string result = string.Empty;
try
{
// get all public static properties of MyClass type
PropertyInfo[] propertyInfos;
propertyInfos = thisObject.GetType().GetProperties(BindingFlags.Public | BindingFlags.Static);//By default, it will return only public properties.
// sort properties by name
Array.Sort(propertyInfos,
(propertyInfo1, propertyInfo2) => propertyInfo1.Name.CompareTo(propertyInfo2.Name));
// write property names
StringBuilder sb = new StringBuilder();
sb.Append("<hr />");
foreach (PropertyInfo propertyInfo in propertyInfos)
{
sb.AppendFormat("Name: {0} | Value: {1} <br>", propertyInfo.Name, "Get Value");
}
sb.Append("<hr />");
result = sb.ToString();
}
catch (Exception exception)
{
// to do log it
}
return result;
}
hier, was das Objekt wie folgt aussieht:
Die (IPAddress, MerchantSessionId, etc) sind Eigenschaften und keine Felder, richtig? –
Reed, ich bin mir nicht sicher. Jedoch bin ich daran interessiert, alle Felder und Eigenschaften zu bekommen. Einschließlich aller Unterobjekte. – aron